龙空技术网

java 核心技术-12版 卷Ⅰ- 4.6.6 调用另一个构造器

CC躺平混吃 58

前言:

现时我们对“两个参数的构造方法”大概比较关心,姐妹们都想要分析一些“两个参数的构造方法”的相关资讯。那么小编在网摘上网罗了一些对于“两个参数的构造方法””的相关内容,希望看官们能喜欢,大家一起来学习一下吧!

原文

关键字this 指示一个方法的隐式参数。不过,这个关键字还有另外一个含义。

如果构造器的第一个语句形如 this(......) ,这个构造器将调用同一个类的另一个构造器。下面就是一个典型的例子:

public Employee (double s){

​// calls Employee (String, double)

​this ("Employee #" + nextId, s);

​nextId ++;

}

当调用new Employee(60000)的时候, Employee (double) 构造器将调用Employee(String, double) 构造器。

采用这种方式使用this 关键字非常有用,这样只需要写一次公共构造代码。

C++ 注释 : 在Java中,this 引用 等价于C++ 中的this 指针。但是,在C++ 中,一个构造器不能调用另一个构造器。如果在C++ 中向抽取出公共的初始化代码,则必须编写一个单独的方法。

个人补充

在Java中,这种应用方式很常见,经常会使用参数少的构造器来调用参数多的构造器,并指定缺少的参数值的默认来完成初始化。

并且,可以多个构造器连续调用,比如构造器A 调用B,又在B中调用C ... ...

正如上面的例子里面,当缺少名称的时候,会规定一个默认的name,使用两个参数的构造器。

但应该注意一点,这两个构造器之间,一般应该是参数列表包含关系,也就是构造器1中参数为(A ,B ),则它会调用参数列表为(A , B, C) 的构造器,而不能去调用 (A , C, D) 的构造器,因为尽管后者的参数数量更多,但缺少了参数B,会导致B参数的失效。

标签: #两个参数的构造方法