[英]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
访问A
的private
变量
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.