class Chinese
{
static Chinese obj = new Chinese();
private String name;
private int age;
public void sing() {
System.out.println("啊!!!");
}
private Chinese() {
}
public static Chinese getInstance() {
return obj;
}
}
public class TestChinese
{
public static void main(String[] args) {
Chinese ch1 = Chinese.getInstance();
Chinese ch2 = Chinese.getInstance();
System.out.println(ch1 == ch2);
}
}
/**上述这个小例让TestChinese这个类不能再去自己生成Chinese对象,而只能通过调用getInstance()去生成仅有的一个公共的Chinese对象。
*这个小例是单态模式的一个应用。主要考察对静态成成员变量的理解。
*当Chinese类加载时便完成了对静态成员变量初始化的操作。此时应该是在data segment里生成了一个obj成员变量,它指向了一个heap里的一个Chinese对象
*还要注意return语句。调用getInstance()后,返回obj这个对象。把该对象返回到调用该方法的语句上,后把ch1和ch2这两个引用均指向obj这个对象即可]
*/