java—对象能否调用它所示例化的类中的方法?

5w9g7ksd  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(365)

基本上,我在另一个类中引用了一个类的对象。在另一个类中,我有一个方法,我想从对象类中调用它。有什么办法吗?

public class ObjectClass{
   private int x;
   private int y;
   private Button button;

   public ObjectClass(int x,int y) {
       this.x = x;
       this.y = y;      
       button = new Button("");
       button.setOnAction(new EventHandler<ActionEvent>() {
           @Override public void handle(ActionEvent e) {
               stuff();
               //I want to access the method in FirstClass here

           }});
   }

   public void stuff() {
       //stuff
   }    
}

public class FirstClass{
   private ObjectClass object;
   private boolean change;

   public FirstClass() {
       change = 1;      
       object = new ObjectClass(3,3);

   }

   public void method() {
       this.change = 0;
   }    
}

这段代码使用javafx,但是如果没有它,我的问题应该是适用的

evrscar2

evrscar21#

不,你不能那样做;示例化的“object a”之间没有关系( new A() )在某个点上,以及类型为“typeb”的“object b”( B b = new TypeB(); ),其中typeb具有 new A() 在里面排队。因此,不,你不能做你想做的,在这里。
你能做的就是传递一个示例。 FirstClass 期待创造者 new A() )供应他们自己( this )例如,作为对一个建筑商的评价:

class FirstClass {
    A makeNewA() {
        return new A(this);
    }
}

class A {
    private final FirstClass fc;

    public A(FirstClass fc) {
        this.fc = fc;
    }

    public void doSomethingCallingBackToFc() {
        this.fc.method();
    }
}

当然,不能保证交给a的构造函数的第一类示例是同一个示例。

相关问题