【发布时间】:2020-11-21 18:14:04
【问题描述】:
基本上我有一个类的对象,我在另一个类中实例化。在另一个类里面我有一个我想从对象类内部调用的方法。有没有办法做到这一点?
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,但我的问题应该在没有它的情况下适用
【问题讨论】:
-
这里定义的方法是instance方法。这意味着它们是在类的特定实例 上调用的。要在此上下文中调用
FirstClass的方法,您需要在其上调用该方法的FirstClass的instance。new FirstClass().method();对此很好。另一种选择是使方法static,这意味着它们不绑定到实例,而是(kind'a)绑定到类本身,并且可以在没有实例的情况下调用。在这种情况下,FirstClass.method();会起作用(如果你做到了static)。 -
如果 FirstClass 的实例是在另一个 Main 类中创建的,有没有办法从 ObjectClass 访问该特定实例? @BeUndead
-
你可以将它传递给你在那里的构造函数。
ObjectClass(int x, int y, FirstClass instance) { ... },然后在你想调用它的地方使用instance.method();。 (如果你没有在构造函数中调用它in,你可以将它作为一个字段存储在你的ObjectClass中,并使用构造函数中的instance设置该字段的值。)
标签: java object methods class-method