public class Test1
{
public static void main(String[] args)
{
Aaa a=Aaa.xxx;
Aaa b=Aaa.xxx;
System.out.println(a.toString());
System.out.println(b.toString());
}
}
class Aaa
{
private Aaa()
{

}
public static Aaa xxx=new Aaa();
}

解决方案 »

  1.   

    class Aaa
    {
        private Aaa()
        {
            
        }
        public static Aaa xxx=new Aaa();
    }建议将成员字段变为 private,改用 getInstance() 方法获取class Aaa
    {
        private Aaa()
        {
            
        }
        private final static Aaa xxx=new Aaa();    public static Aaa getInstance() {
            return xxx;
        }
    }
      

  2.   

    不一样的,呵呵。至于为什么,就是个封装的概念,总之你写的代码越多就知道为什么用 getInstance 方法会优于直接用这个变量。
      

  3.   

    你的静态成员xxx是public,外部可以直接访问的,Aaa.xxx=null;而提供一个静态方法返回则实例不会出现这个问题