我最近一直在乱用Java和&我发现,就我的目的而言,我需要几个不同的物体才能与之交流。实例化一个特定的类,该类生成一个GUI JFrame,其中包含其他类需要编辑的所有变量,字段等。 我发现最简单但可能是错误的方法是在MainClass文件中实例化GUI类,然后当我实例化显式需要访问GUI类中的方法和变量的其他类时,我只是传递GUI对象他们。
我的问题是,我无法弄清楚这是否只是打开对已创建对象的访问权限,或者是否完全创建了一个新对象。在后者的情况下,然后打开几个新的GUI对象将只复制一切&浪费资源,没有任何收获,所以这就是我想要避免的。
我将在下面包含(偶然制作)代码,所以我的问题是:这会创建新的冗余对象,还是让其他类访问该实例而不创建新的?
主类代码:
public class PlateauMainClass {
/**
* @param args the command line arguments
*/
PlateauJGui plateauGui;
GenerateGUI plateauGuiDataGen;
PlateauMainClass() {
// Instantiate the plateauGui object, then pass it into the GUI generator.
// The GUI generator will generate data for the different GUI elements.
plateauGui = new PlateauJGui();
plateauGuiDataGen = new GenerateGUI(plateauGui);
// Finally, makes the frame actually visible.
plateauGuiDataGen.makeFrameVisible();
}
public static void main(String[] args) {
// TODO code application logic here
new PlateauMainClass();
}
}
外部。类示例代码:
public class GenerateGUI {
PlateauJGui gui;
GenerateGUI(PlateauJGui o) {
gui = o;
}
public void makeFrameVisible() {
gui.setVisible(true);
}
}
答案 0 :(得分:3)
在每个new
关键字和某些特殊情况下(调用Class.newInstance
方法等)创建新对象。因此,所有对象都使用PlateauJGui
类的相同实例进行操作。