用的任何名字都可能与打算为某个类成员使用的名字冲突。第二是由于编译器的
责任是调用构建器,所以它必须知道要调用是哪个方法。
C++
采取的方案看来是
最简单的,且更有逻辑性,所以也在
Java
里得到了应用:构建器的名字与类名
相同。这样一来,可保证象这样的一个方法会在初始化期间自动调用。
下面是带有构建器的一个简单的类(若执行这个程序有问题,请参考第
3
章
的“赋值”小节)。
148-149
页程序
//: c04:SimpleConstructor.java
// Demonstration of a simple constructor.
class Rock {
Rock() { // This is the constructor
System.out.println("Creating Rock");
}
}
public class SimpleConstructor {
public static void main(String[] args) {
for(int i = 0; i < 10; i++)
new Rock();
}
} ///:~
现在,一旦创建一个对象:
new Rock();
就会分配相应的存储空间,并调用构建器。这样可保证在我们经手之前,对
象得到正确的初始化。
请注意所有方法首字母小写的编码规则并不适用于构建器。这是由于构建器
的名字必须与类名完全相同!
和其他任何方法一样,构建器也能使用自变量,以便我们指定对象的具体创
建方式。可非常方便地改动上述例子,以便构建器使用自己的自变量。如下所示:
149
页中程序
//: c04:SimpleConstructor2.java
// Constructors can have arguments.
class Rock2 {
Rock2(int i) {
System.out.println(
"Creating Rock number " + i);
}
}
评论