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

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(

所以我有这个场景

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);