最近我一直在用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);
}
}
請參閱此問題http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – 2014-10-29 12:07:59
您是否完成了簡單的參考平等檢查? – 2014-10-29 12:10:14
有趣的閱讀!謝謝=) – Tenaar 2014-10-29 12:11:27