完全看不懂,能加一下详细的注释吗? class Test1 { 
private static Test1 test1; 
private Test1(){//为什么构造方法是私有的? } 
public static Test1 getTest1(){//这个方法是用来做什么的? 
if(test1 == null){ 
test1 = new Test1(); 

return test1; 


//每一句都不理解 public class Test111 { 
public static void main(String[] args) { 
Test1 t1 = Test1.getTest1();//不明白?? 
Test1 t2 = Test1.getTest1(); 
Test1 t3 = Test1.getTest1(); 
Test1 t4 = Test1.getTest1(); System.out.println(t1); 
System.out.println(t2); 
System.out.println(t3); 
System.out.println(t4); 
} }

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【peterandy0116】截止到2008-06-29 20:48:38的历史汇总数据(不包括此帖):
    发帖数:5                  发帖分:85                 
    结贴数:4                  结贴分:65                 
    未结数:1                  未结分:20                 
    结贴率:80.00 %            结分率:76.47 %            
    楼主加油
      

  2.   

    public static Test1 getTest1(){//这个方法是用来做什么的?
    if(test1 == null){
    test1 = new Test1();
    }
    return test1;
    }

    是用来获取Test1的实例对象的,如果这个类没有实例对象就构造一个,如果已经有了,那么就返回那个已经存在的实例对象。
    至于Test1的构造函数为什么是私有的,其实这应该没有什么关系吧。
      

  3.   

    这是设计模式中间的单例模式:意义是只允许创建一个类的实例对象,禁止构造第二个,先把构造函数设为私有,这样在外部无法通过new来创建对象,之后提供静态方法获取唯一的那个实例对象,由于第一次调用getTest1()时唯一的实例为null,所以if只有在第一次调用静态方法时为真,之后都是重复的返回同一个实例对象test1。class Test1 { 
      private static Test1 test1; 
      private Test1(){
      } 
      
      public static Test1 getTest1(){
        if(test1 == null){ 
          test1 = new Test1(); 
        } 
        return test1; 
      } 

      

  4.   

    谢谢楼上两位那 private static Test1 test1; 的作用是什么呢
      

  5.   


    如果不是static 就不能保证是单例了
      

  6.   


    private Test1(){//为什么构造方法是私有的? 防止类在外部被实例化public static Test1 getTest1(){//这个方法是用来做什么的? 给test1赋一个值
      

  7.   


    private Test1(){//为什么构造方法是私有的? 防止类在外部被实例化public static Test1 getTest1(){//这个方法是用来做什么的? 给test1赋一个值
      

  8.   


    这其实是 java23种模式中的其中一个 单例模式!