class Soup
{
    private static Soup ps1 = new Soup();
    public static Soup access()
   {
         return ps1;
    }
}书上是这样说的:ps1是被当作Soup类的private static成员来创建的,因此它有且只有一个对象,而且除非是通过public的access方法,否则没法获取.
请大家帮忙解释一下,谢谢
还有这个private static有什么深层的含义啊?谢谢

解决方案 »

  1.   

    根据“访问控制”的规则,private的域除了自身外,不能被别的类直接访问,别的类要访问需通过专门的方法。
      

  2.   

    那private static是啥含义啊,它还说"它有且只有一个对象"
      

  3.   

    其实在里边添加一个这样的构造函数应该就能明白多了。
    private Soup(){}
    这样在类外就不能实例化这个类,创建类的对象只能在雷内容不进行,
    private static Soup ps1 = new Soup();这句在类的内部,可以创建类的对象,然后通过access方法得到ps1,这样就防止类被多次实例化。
      

  4.   

    A c = A.access();
    A d = A.access();
    这样两次是可以的啊
     benq998() 说的 防止类被多次实例化。这是什么含义啊?
      

  5.   

    benq998() 说的 防止类被多次实例化。
    是指只能有一个对象被创建,
    A c = A.access();
    A d = A.access();
    C==D的.
    JAVA编程思想有讲的.
      

  6.   

    A c = A.access();
    A d = A.access();
    你这样写,c和d中引用的是同一个对象。就像C++里边的两个指针可以执行同一个对象一样。
    就像你自己写一个数据库连接池,这个连接池的实例只需要一个就可以了,多了没用,每次需要连接的时候只需得到连接池的实例,然后从中得到一个数据库联接。
      

  7.   

    private static含义就是在内存中"它有且只有一个对象"第一次被创建,以后只是使用,使用时必须获得其在堆内存中引用,是通过public static Soup access()方法来获得的
      

  8.   

    我的理解是 new Soup() 可以产生一个对象,也可以申明一个对象的引用,在此列中是申明一个对象的引用:既是一个成员变量 ,并申明成 private static ,具体用法如 crazycy(代言人) 楼上所言..