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

时间:2014-11-24 04:09:41

标签: java instance-variables

所以我有这个场景

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的实例。我该怎么做?

4 个答案:

答案 0 :(得分:1)

您只需将A的实例传递给B

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

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

答案 1 :(得分:0)

如果类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,那么您不需要存储引用的本地副本。

答案 2 :(得分:-1)

您必须从实例A

创建新对象
A aa = new A();

OR

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

答案 3 :(得分:-1)

内心阶层似乎是最好的事情,

  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

注意这只是实现目标的一种方式,您可以在此处A访问private class个变量} B