class Single{
private static Single onlyone = new Single();
private String name;
public static Single getSingle() {
return onlyone;
}
private Single() {}
}public class TestSingle{
public static void main(String args[]) {          
Single  s1 = Single.getSingle();
Single  s2 = Single.getSingle();
if (s1==s2){
System.out.println("s1 is equals to s2!");
 }
}
}
上面代码中红色代码部分是实现了什么功能呢?是引用变量的定义么?引用变量是怎么定义的呢?

解决方案 »

  1.   

    这个例子主要是想说明类中静态变量的问题
    static修饰符的作用红色部分就是调用类中的静态方法
      

  2.   

    楼主这些代码就是JAVA20多种设计模式中的其中之一,就是单例模式,红色的代码就是通过调用getSingle方法而取得了唯一的一个Single 对象,从而s1与s2是相等的
      

  3.   

    这是个单例模式 就是说他只有一个对象 不管你new多少次都只会在内存开辟一块区域 同一个地址指向他 
    所以你在s1和s2中虽然都new了一个Single对象 但是都是指向的同一个地方 所以是相等的 而且貌似记得应该加个final修饰符 
      

  4.   

      这个的确是单列模式,但是好像少了一句代码,应该先判断一下对象是否为null,如果为null的话就new出一个新的对象,如果不为new的话就直接返回当前对象。这个单列模式的最大好处是减少程序的数据对象。