这个问题确实令人困惑
a ________
是特殊方法,具有与类相同的名称,并且只要实例化类的对象,就会自动调用。答案:
-
构造函数
-
setter
-
getter
-
静态方法
我认为构造函数是唯一的名称与班级相同的名字,但是等等!构造函数并不是真正的方法,它与方法不同。因此,我读了这篇文章,得出的结论是,这个问题是错误的,我对吗?
Constructors
实际上是一种特殊的方法,用于初始化新创建的实例的状态。当您创建一个类似的实例时: -
A obj= new A();
然后,使用new
关键字创建了A类的实例,然后在该新创建的实例上调用构造函数A()
。
与那篇文章更远的是: -
构造函数在生活中有一个目的:创建一个实例 班级。
否这是错误的。构造函数不会创建实例,它的new
关键字可以做到。然后构造函数初始化了如上所述所创建的实例的状态。
来自JLS - Section 8.8
: -
构造函数由类实例创建表达式调用 (§15.9),通过字符串引起的转换和串联 串联操作员 (§15.18.1),并通过显式构造函数 来自其他构造函数的调用(§8.8.7)。
构造函数永远不会通过方法调用表达式调用 (§15.12)。
也来自Oracle教程
点Originone =新点(23,94);
以上语句有三个部分(以下详细讨论):
声明:BOLD中的代码是所有可变声明 将变量名称与对象类型相关联。
Intantiation :新关键字是创建的Java操作员 对象。
初始化:新操作员之后是对构造函数的调用, 初始化了新对象。
构造函数是特殊方法。它们与"正常"方法不同。但是它们是方法。看看这个:
public class A {
public A() {
this(5); // calls A(int)
}
public A(int arg) {
// ...
}
}