这是一个非常基本的问题,但我很想解释为什么我的问题可以或不能实现。
如果我有一个类(A),其中包含一个字符串,并且具有该字符串的 set 方法。我从第一个类(A)实例化另一个类(B),为什么我不能从新类(B)访问第一个类(A)来调用第一个类(A)中字符串的set方法)。
我问的唯一原因是我正在开发一个具有类似问题的项目,我从主类创建一个返回一些按钮的新类。当单击按钮时,主类中的 ActionListener 应该更改初始类中的字符串,但我似乎无法在不重新实例化该类的情况下访问原始类的 set 方法。
抱歉,如果这听起来很杂乱,但我真的很想了解为什么这是一个问题,以及正确的方法是什么。我知道我可能会因此被击落,但我们将不胜感激。
最佳答案
因为类 B 需要保存创建它的 A 实例的引用。没有正式的理由表明应该默认这样做。例如:
public class B {
private final A creator;
public B(A creator) {
// you might want to check for non null A
this.creator = creator;
}
public void foo(String value) {
creator.setText(value);
}
}
关于Java - 类实例化和访问的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318956/