0

我有 5-6 个 GUI(单独的类),一个根据它们的功能打开另一个,每个 GUI 都有一个对象,当从Book_GUI.java 中的座位选择菜单

Passenger_GUI frameP = new Passenger_GUI(eco.seats[x][z].getMyPassenger());
frameP.setVisible(true);    
eco.seats[x][z].setBooked(true);

在Passenger_GUI.java 我有:

        private Passenger passenger_GUI;

稍后在没有初始化的构造函数中,passenger_GUI我将输入乘客对象分配给它:

public Passenger_GUI(Passenger myPassenger) {
    passenger_GUI = myPassenger;

一切正常,没有错误...我有 2 个问题,我是否必须先初始化乘客 GUI,然后进行分配,还是没有必要?第二个重要问题;我在Passenger_GU中对对象myPassenger( eco.seats[x][z].myPassenger)所做的更改,它们是否会保存在以前的GUI中Book_GUI.java我认为不是因为Passenger_GUI类没有返回值……还是我错了?如何进行我应用的更改在一个稳定的对象上并用于未来Book_GUI.java?(以前的 GUI)谢谢你的时间!

这里完整的课程: http: //www.copypastecode.com/643018/ http://www.copypastecode.com/643022/

4

1 回答 1

4
  1. 不,您可以passenger_GUI在构造函数中进行初始化。
  2. 更改应该持续存在。由于您向构造函数传递了一个Object而不是原语Passenger_GUI,因此 Java 实际上传递了对该Passenger对象的引用。您的Passenger_GUI.passenger_GUI字段应该引用与 相同的对象(实际上,内存中的相同位置)eco.seats[x][z].getMyPassenger(),因此从内部对该对象所做的任何更改Passenger_GUI也应该从Book_GUI.
于 2013-06-19T13:04:25.133 回答