本文主要是讲从《java编程思想》中看到的东西,是第七章复用类的开头内容,主要是类初始化的几种方法的位置,主要包括
1.在定义对象的地方。这意味着他们总是在构造器被调用前被初始化。
2.在类的构造器中
3.在要使用这些对象之前,这种方式称为惰性初始化。在生成对象不值得以及不必每次都生成对象的情况下,这种方式可以减少额外的负担。
4.使用实例初始化。
下面是这四种方式的示例。
1 class Soap{ 2 private String s; 3 Soap() { 4 System.out.println("Soap()"); 5 s = "Constructed";//在构造器中初始化 6 } 7 public String toString(){ 8 return s; 9 } 10 } 11 12 public class Bath{ 13 private String s1 = "Happy", s2 = "Hello";//定义对象的地方初始化 14 private String s3, s4; 15 private Soap castile; 16 private int i; 17 public Bath(){ 18 print("Bath()"); 19 s3 = "Tonny"; 20 } 21 22 { i = 43; }//使用实例初始化 23 24 public String toString(){ 25 if(s4 == null) 26 s4 = "John";//惰性初始化 27 return "done"; 28 } 29 }
在Bath()中,有一行语句在所有初始化产生前就已经执行,如果没有在定义处初始化,那么除非发生不可避免的运行期异常,否则将不能保证信息在发送给对象引用前已经被初始化。