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!");
}
}
}
上面代码中红色代码部分是实现了什么功能呢?是引用变量的定义么?引用变量是怎么定义的呢?
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!");
}
}
}
上面代码中红色代码部分是实现了什么功能呢?是引用变量的定义么?引用变量是怎么定义的呢?
static修饰符的作用红色部分就是调用类中的静态方法
所以你在s1和s2中虽然都new了一个Single对象 但是都是指向的同一个地方 所以是相等的 而且貌似记得应该加个final修饰符