繁体   English   中英

如何从其实例变量访问类的实例

[英]how to access an instance of a class from its instance variable

所以我有这种情况

A类:

public class A {
    B b = new B();

    public void doSomething() {
         // this does something
    }
}

和B类:

public class B {
    public B() {
       // need to access A
    }
}

问题是我需要从A的实例变量B访问A的实例。我该怎么做?

您可以简单地将A的实例传递给B

class A {
  B b;
  A() {
    b = new B(this);//<-- A's instance
  }
}

class B {
  A a;
  B(A a) {
    this.a = a;
  }
}

如果类B需要访问现有实例的A ,那么你必须提供B用的参考实例A实例。

class B {
    private A a;
    B(A a) { 
        this.a = a; 
        // do something with a 
    }
}

然后

A a = new A();
B b = new B(a);

如果只需要在构造函数中访问A ,则不需要存储引用的本地副本。

您必须从实例A创建新对象

A aa = new A();

要么

public class B extends A {
    public B() {
       // need to access A
    }
}

内部班级似乎是最好的选择,

  public class A {
        B b = new B();
        private int tryToAccess;
        public void doSomething() {
             // this does something
        }

    public class B{

     public B()
         {
          tryToAccess=5;
         }
    }//B ends
   }//A ends

注意这只是解决问题的一种方法,在这里您可以从class B访问Aprivate变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM