4.1 用构造器自动初始化
4.1 用构造器自动初始化
对于方法的创建,可将其想象成为自己写的每个类都调用一次
接着的一个问题是如何命名这个方法。存在两方面的问题。第一个是我们使用的任何名字都可能与打算为某个类成员使用的名字冲突。第二是由于编译器的责任是调用构造器,所以它必须知道要调用是哪个方法。
下面是带有构造器的一个简单的类(若执行这个程序有问题,请参考第
//: SimpleConstructor.java
// Demonstration of a simple constructor
package c04;
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();
就会分配相应的存储空间,并调用构造器。这样可保证在我们经手之前,对象得到正确的初始化。 请注意所有方法首字母小写的编码规则并不适用于构造器。这是由于构造器的名字必须与类名完全相同! 和其他任何方法一样,构造器也能使用自变量,以便我们指定对象的具体创建方式。可非常方便地改动上述例子,以便构造器使用自己的自变量。如下所示:
class Rock {
Rock(int i) {
System.out.println(
"Creating Rock number " + i);
}
}
public class SimpleConstructor {
public static void main(String[] args) {
for(int i = 0; i < 10; i++)
new Rock(i);
}
}
利用构造器的自变量,我们可为一个对象的初始化设定相应的参数。举个例子来说,假设类
tree t = new Tree(12); // 12英尺高的树
若
构造器有助于消除大量涉及类的问题,并使代码更易阅读。例如在前述的代码段中,我们并未看到对