Java 如何从类的实例变量访问类的实例
所以我有这个场景 A类:Java 如何从类的实例变量访问类的实例,java,instance-variables,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的实例。我该怎么做?您必须从实例A创建新对象 A aa = new 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创建新对象
A aa = new 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
注意:这只是一种方法,在这里您可以从B类访问A的私有变量,您只需将A的实例传递给B: 如果类B需要访问A的现有实例,则必须为B实例提供对A实例的引用
class B {
private A a;
B(A a) {
this.a = a;
// do something with a
}
}
然后
如果只需要在构造函数中访问A,则不需要存储引用的本地副本。创建引用时,必须在B实例中存储对A实例的引用。或者将B作为A的内部类,这是相同的区别。这不是我的意思,我不希望B扩展A,因为它们有不同的功能,例如A是JPanel,B是JButton,或者类似的东西。但是我想让按钮在面板上做点什么。你必须在类B中创建新对象A=新A;你可以称之为aa.doSomeThing@萨多尔杜沙莫夫:我想你误解了这个问题。有没有一种不使用内部类的方法?类A和类B在某个时候会分别被其他类使用,它只是那个类,有一个B的实例作为变量,B需要访问它所在的A的实例。恐怕没有,我也不能在任何实际情况下这样做,大多数这样的问题都是用内部类解决的,仍然可以做的最好的事情是在B中编写一个方法,将对象a作为参数,然后尝试这样的方法,a=新的a,a.B.accessa;是的,我现在开始工作了,我会投票给这个答案,但我不被允许这么做。。。对于任何其他人,上述代码works@Totalllyrandomguy,您可以通过选中向下箭头下方的复选标记来接受答案。
class A {
B b;
A() {
b = new B(this);//<-- A's instance
}
}
class B {
A a;
B(A a) {
this.a = 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);