类中域为基本类型可以被自动初始化为0,对象引用会被初始化为null。
初始化对象引用的方法
{
1.在定义对象的地方。
2.在类的构造器中
3.在正要使用对象之前(惰性初始化)
4.实例初始化
}
class Soap { private String s; Soap() { print("Soap()"); s = "Constructed";//2<span style="font-size:14px;">在类的构造器中</span> } public String toString() { return s; } } public class Bath { private String // 1<span style="font-size:14px;">在定义对象的地方</span> s1 = "Happy", s2 = "Happy", s3, s4; private Soap castille; private int i; private float toy; public Bath() { print("Inside Bath()"); s3 = "Joy"; toy = 3.14f; castille = new Soap();//<span style="font-size:14px;">4实例初始化</span> } // Instance initialization: { i = 47; } public String toString() { if(s4 == null) // Delayed initialization: s4 = "Joy"; return "s1 = " + s1 + "\n" + "s2 = " + s2 + "\n" + "s3 = " + s3 + "\n" + "s4 = " + s4 + "\n" + "i = " + i + "\n" + "toy = " + toy + "\n" + "castille = " + castille; } public static void main(String[] args) { Bath b = new Bath();//<span style="font-size:14px;">3在正要使用对象之前(惰性初始化)</span> print(b); } } /* Output: Inside Bath() Soap() s1 = Happy s2 = Happy s3 = Joy s4 = Joy i = 47 toy = 3.14 castille = Constructed
时间: 2024-10-17 02:52:15