/** 创建一个类在内存中 只有一个实例对象*/
class Chinese
{
static Chinese obj= new Chinese();
/* 如果不用static修饰,每创建一个对象就会指向一个变量obj,obj又被创建新的对象以此循环下去,用了static 在对象未被创建就以分配了内存空间,并且是不变的。并且静态的方法只能访问静态的成员变量*/
private Chinese() {}
public static Chinese getInstance()
{
return obj;
}
/*提供一个方法给外部访问,因为对象还未被创建所以是static的,可被外部访问所以是public
返回值为对象 所以是Chinese */
}
class TestChinese
{
public static void main(String[] args){
Chinese obj1=Chinese.getInstance();
Chinese obj2=Chinese.getInstance();
System.out.print(obj1==obj2);
}
}
/*在静态方法里只能直接调用同类中其它的静态成员(包括变量和方法),而不能直接访问类中的非静态成员。这是因为,对于非静态的方法和变量,需要先创建类的实例对象后才可使用,而静态方法在使用前不用创建任何对象。同理 静态方法不能以任何形式引用 this和 super关键字。静态方法被调用时,this所引用的对象根本没有产生。
*/