java - 在java中使用this保存多个对象引用

标签 java object

我有以下建筑类:

public class Building {

static ArrayList<Floor> floors = new ArrayList<Floor>();
public Elevator elevator;
public static int floorNo;

//constructor creates elevator and floor objects
public Building() {
    elevator = new Elevator(Elevator.building);

    int count = 1;
    while (count != FLOORS+1) {
        floors.add(new Floor(Elevator.building, count));
        count++;
    }
}

//returns proper floor object by accessing the array
public static Floor floor(int floorNumber) {
    this.floorNo = floorNumber;
    return floors.get(floorNumber-1);
}

public static int getFloorNo() {
    return floorNo;
}

}

如果我创建以下对象并对其调用某些方法。我丢失了对象的标识,当我调用该方法时,我不知道它正在调用哪个对象。

//I save the 1 using this in floor(), so floorNo = 1
Floor firstFloor = building.floor(1);   

//now floorNo = 2
Floor secondFloor = building.floor(2); 

//here how do I know that firstFloor is 1 since floorNo value is changed
firstFloor.waitForElevator();

谢谢!

最佳答案

实际上,您使用采用楼层号(第二个参数)的构造函数创建了 firstFloor

我猜你的Floor类看起来像这样:

public class Floor {
   private final int floorNo;
   private final Elevator elevator;

   public Floor(final Elevator elevator, final int floorNo) {
       this.elevator = elevator;
       this.floorNo = floorNo;
   }
}

要获取 firstFloorfloorNo(它只是 Floor 的一个实例),您应该创建(并使用!)一个 <其floorNo字段的strong>getter。

例如,您可以将以下方法添加到 Floor 类中:

public int getFloorNo() {
    return this.floorNo;
)

因此,您可以知道 Floor 任何实例的楼层号,如下所示:

System.out.println(firstFloor.getFloorNo());

将输出:

1

关于java - 在java中使用this保存多个对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649570/

相关文章:

java - 另一个关于servlet的问题

c++ - 什么是静态或常量抛出错误?

javascript - 如何从 PHP 后端接收 JSON 对象并将其转换为前端的 JavaScript 数组

java nio 无法写入文件,旧式文件可以工作。怎么了?`

java - 在 java 字符串中使用 intern

c++ - 输入信息的员工类C++。

3 个对象中的 Javascript 求和值

java - 旋转多行字符串

java - 2-3 分钟后我将应用程序留在后台后,我的 android 应用程序实例(应用程序类)被销毁

java - Google AppEngine/Java 和现有数据库