我遇到的一个非常常见的问题是,我有一些字段,并且我想通过从字段类派生初始化的类来引用它们。
让我说得更具体一些。
我有从主类派生的三个类。
每个类都有一个与字段交互的方法。在本例中,有一个 JFrame 调用一个类(JPanel)并将其添加到内容 Pane 。
我发现的方法是将 Frame 类创建的对象的引用传递给 Panel 类的构造函数。并通过它引用它们。
有没有更有效的方法?如何为所有派生类创建全局字段或方法?在这种情况下它们是主类的组件?
更新
类似这样的事情。
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JFrame1 extends JFrame {
protected String field1;
protected String field2;
public JFrame1() {
add(new Panel1());
}
}
class Panel1 extends JPanel {
public Panel1() {
// field1 = "String"; Wrong
}
}
我知道我可以嵌套class Panel1
里面public class Frame1
问题就解决了,但是如果我希望这两个类位于不同的文件中怎么办?
最佳答案
从主类派生的三个类 - 这是什么意思?您的三个类派生自(扩展)JPanel,并且其中没有任何字段。
如果您询问您的三个类应如何访问 Frame1
(可能是它们的容器)中的字段 - 那么您应该使用 getParent()
要获取对父类的引用,请检查它是否为 Frame1,如果是,则访问其字段。
关于java - 类的全局字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9379137/