publicclassTest08{publicstaticvoidmain(String[] args){// A a1 = new A(); 不能在其他类new A的对象
A a2 = A.makeAs();// 调用静态方法new对象。
A a3 = A.makeAs();
A a4 = A.makeASingle();
A a5 = A.makeASingle();
System.out.println(a2);// ThinkingInJava.A@b4c966a
System.out.println(a3);// ThinkingInJava.A@2f4d3709
System.out.println(a4);// ThinkingInJava.A@4e50df2e
System.out.println(a5);// ThinkingInJava.A@4e50df2e}}classA{privatestaticfinal A singleA =newA();// 构造方法私有private A (){}// 由于不能在其他类new A对象,所以实例方法根本不可能被调用,需要用静态方法。public A makeA(){
A a1 =newA();return a1;}// 每次调用生成一个新的A对象publicstatic A makeAs(){
A a1 =newA();return a1;}// 每次调用返回的都是相同的singleA对象,因为它是静态成员,只赋值一次。publicstatic A makeASingle(){return singleA;}}