我想在Java中创建一个类的对象,这个对象是一个全局对象,不仅可以被一个类访问,也可以被另外好几个类访问和共享,请问如何实现?

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3959/3959291.xml?temp=.3562433
    和这个问题如出一折...语言基础要学好啊...这是规范来的...
      

  2.   

    不好意思,发错了...
    这个问题可以这样
    public class A{
        YourClass yc();
        
        YourClass getYc(){
            return yc;
        }
    }public class B{
        YourClass yc;
        A a = new a();
        yc = a.getYc();    
    }
      

  3.   

    // 单一实例或许能解决部分需要。public class Global {
       private static Global instance = new Global();
       private  Global (){ }   public static Global getInstance(){
          return instance;
       }
       // other public methods.
    }
      

  4.   

    单例模式是可以解决这个问题
    在jvm中只有一个对象。这个对象封装了你需要的方法和拥有的属性!
      

  5.   

    对头,哈哈,使用的时候只要Global.getInstance();就得到需要的类的实例,而且是全局唯一的,呵呵
      

  6.   

    仅仅是 ClassLoader 范围内唯一.
      

  7.   

    首先,请楼主确定该类在整个运行周期中是否唯一(比如资源管理器,Window回收站等),如果确实是唯一的,楼主可以使用单例模式实现该方法,单例模式的示意性代码如下:public class Singleton {
      private static final Singleton 
        instance = new Singleton();
      /*
       * 私有构造函数,保证该类将不被外界实例化,同时也不可能被继承
       */
      private Singleton() { }
      /*
       * 静态工厂方法,返回唯一实例
       */
      public static Singleton getInstance() {
        return instance;
      }
    }(以上代码引自《JAVA与模式》——阎宏)唯一的实例被该类的内部filed所引用,并在第一次类别加载时初始化,这时候,单例类的唯一实例被创建出来。无论在任何地方调用Singleton.getInstance()都将返回唯一被共享的那个Singleton实例,同时由于被类内部化,使得该对象在整个程序运行生命周期中无法被销毁。注意:
    有个前提,请楼主确定该对象在整个软件运行生命周期中是唯一的,否则请不要使用单例模式。如果无法确定该对象是否是唯一的,并且依然希望让多个对象同时共享该对象,就必须具体问题具体分析了,可能使用的模式是
        多例模式,当可能有多个(注意是有限个)实例被大量共享时
        享元模式,当需要共享大量细粒度对象时
        不变模式,该对象在创建后的内蕴状态在整个生命周期中均不可变动,这就使得共享变成可能楼主的问题还需提供更多信息并进行具体分析,这里在下也是菜鸟一只无法提供更多的帮助了,可以参看
    《Design Patterns》 —— E.Gamma, R.Helm, R.Johnson, and J.Vlissides
    《JAVA与模式》 —— 阎宏@.@||~