java构造方法的互相调用方式

 更新时间:2024年03月27日 10:29:10   作者:一颗菘菜  
这篇文章主要介绍了java构造方法的互相调用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java构造方法的互相调用

public Student(int age){
    super();
    this.age = age;
}
 
public Student(String name , int age){
    /*
        super(); 注意,这里不能再调用super();因为下边的this(age);调用了上方的构造器,已经存在了    
        super();该构造器内不能再次调用。所以只写一个this(age)就够了;
    */
    this(age);
    this.name = name;
}

其他的小细节

构造方法体内调用父类构造器( super(); )或重载构造器( this(); )时,应放在方法体内的第一行。

构造方法及其重载

1.构造方法

类中有一种特殊的成员方法,其方法名与类名相同,称为构造方法。

通过构造方法可以完成对象的创建,以及实例变量的初始化。

下面是一个构造方法示例:

public class Puppy{
  public Puppy( ) { }
  public Puppy(String name) {

       //这个构造器仅有一个name

      }
}  

每个类都有一个隐藏的无参构造函数。

public class Dog{
 
    /**
     * 带参构造函数
     * @param name
     * @param age
     */
    public Dog(String name,int age){
        this.age = age;
        this.name = name;
    }
 
    /**
     * 无惨构造函数
     */
    public Dog(){}
 
    String name;
    int age;
 
    public void ptint(){
        System.out.println("name = "+this.name+";age = "+age);
    }
 
    public static void main(String[] args) {
        new Dog().ptint();
        new Dog("花花",9).ptint();
    }
}

2.构造方法和对象的初始化

构造方法怎么调用,使用哪个运算符?

当使用new 运算符实例化一个对象时,系统为对象创建内存区域并自动调用构造方法初始化成员变量。

下面是new运算符实例化一个对象。

Puppy p = new Puppy( );
Puppy p1 = new Puppy(“张三”);

3.实例——用构造方法初始化成员变量

class Triangle
{
int x,y,z;
public Triangle(int i,int j,int k)
{  
x=i;y=j;z=k;
public static bpplean judge(Triangle m)
{ 
 if(Math.sqrt(m.x*m.x+m.y*m.y)= =Math.sqrt(m.z*m.z))
    //引用Math类库的sqrt()方法
    return true;
    else
    return false;
}
public static void main(String args[]) {
Triangle t1=new Triangle(3,4,5);
if(judge(t1))   //调用judge()方法,判断t1的成员变量是
    //否能构成直角三角形的3条边长
System.out.println("这是一个直角三角形");
else
System.out.Println("这不是一个直角三角形");
}
 
}

4.构造方法的特点

  • 构造方法名与类名必须一致,大小写也要一样。
  • 构造方法没有返回值,void类型也不写。
  • 在创建一个对象的时候,至少要调用一个构造方法。
  • 构造方法不能显式地直接调用。
  • 构造方法的主要作用是对对象初始化。
  • 修饰符列表目前统一写:public。千万不要写public static。

5.构造方法重载 

构造方法是支持方法重载的。在一个类当中构造方法可以有多个。并且所有的构造方法名字都是一样的。

对于实例变量来说,只要你在构造方法中没有手动给它赋值,统一都会默认赋值。默认赋系统值。

方法重载特点:

  • 重载的方法必须在同一个类中
  • 方法名相同
  • 参数列表不同(不包含参数名不同)
  • 方法的重载与访问修饰符和返回值类型无关

6.成员变量

类中的属性,也就是直接在类中定义的变量称作成员变量,它定义在方法外面。

局部变量就是定义在方法中的变量;一般情况下,局部变量在使用前需要赋值,否则会编译出错。

成员变量和局部变量的区别:

  • 作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问它;成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。
  • 初始值不同。成员变量在定义时可以不初始化,Java会给成员变量赋初始值;但是Java不会给局部变量赋初始值,因此在定义局部变量时必须初始化后再使用。
  • 在同一个方法中,不允许有同名的局部变量,在不同的方法中可以有同名的局部变量。
  • 局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java代码注释规范(动力节点整理)

    Java代码注释规范(动力节点整理)

    代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。下面通过本文说一下我们在日常开发中使用的代码注释规范
    2017-03-03
  • java代码实现MD5加密及验证过程详解

    java代码实现MD5加密及验证过程详解

    这篇文章主要介绍了java代码实现MD5加密及验证过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 基于Spring-AOP实现自定义分片工具详解

    基于Spring-AOP实现自定义分片工具详解

    随着数据量的增长,在与其他系统交互时,批量接口会出现超时现象,发现原批量接口在实现时,没有做分片处理。由于与其他系统交互比较多,一个一个接口去做分片优化,改动量较大,所以考虑通过AOP解决此问题,感兴趣的可以了解一下
    2022-11-11
  • java使用JDBC动态创建数据表及SQL预处理的方法

    java使用JDBC动态创建数据表及SQL预处理的方法

    这篇文章主要介绍了java使用JDBC动态创建数据表及SQL预处理的方法,涉及JDBC操作数据库的连接、创建表、添加数据、查询等相关实现技巧,需要的朋友可以参考下
    2017-08-08
  • EL表达式的隐式对象_动力节点Java学院整理

    EL表达式的隐式对象_动力节点Java学院整理

    这篇文章主要介绍了EL表达式的隐式对象,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 详解spring security四种实现方式

    详解spring security四种实现方式

    这篇文章主要介绍了详解spring security四种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java项目实现定时任务的三种方法

    Java项目实现定时任务的三种方法

    Java开发过程中经常会遇到使用定时任务的情况,比如在某个活动结束时,自动生成获奖名单,导出excel等,下面这篇文章主要给大家介绍了关于Java项目实现定时任务的三种方法,需要的朋友可以参考下
    2022-06-06
  • Java实现京东联盟API数据获取功能

    Java实现京东联盟API数据获取功能

    这篇文章介绍了Java获取京东联盟API数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Java并发编程:CountDownLatch与CyclicBarrier和Semaphore的实例详解

    Java并发编程:CountDownLatch与CyclicBarrier和Semaphore的实例详解

    这篇文章主要介绍了Java并发编程:CountDownLatch与CyclicBarrier和Semaphore的实例详解的相关资料,需要的朋友可以参考下
    2017-09-09
  • 浅谈springboot中tk.mapper代码生成器的用法说明

    浅谈springboot中tk.mapper代码生成器的用法说明

    这篇文章主要介绍了浅谈springboot中tk.mapper代码生成器的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论