我正在编写一个包含多个类的系统。有一个类存储为私有字段,另一个类的实例存储。第二类需要知道第一类中私有字段的信息。可以这样做吗?
编辑:我想做一个“房子”;这包括房间和人员我组织的方式是在Room类中有一个People类的实例。但是,每个People实例都需要知道存储在房间中的房间号。那么如何从Room获取此信息?从更广泛的意义上讲,我如何从类中的私有字段获取信息到另一个类的实例,该类存储为类中的私有字段。
答案 0 :(得分:0)
通常,您希望构造代码,以便对象不知道其封装器以避免意大利面条代码和循环依赖,因此您可以重新考虑您的设计。但是,如果一个房间要了解人们和人们要了解他们所在的房间,那么直接的方法是在这两个对象之外的代码构建它们:
public class House {
private final Room room1;
private final Room room2;
public House() {
Room room1 = new Room();
Room room2 = new Room();
People group1 = new People();
People group2 = new People();
group1.setRoom(room1);
group2.setRoom(room2);
this.room1 = room1;
this.room2 = room2;
}
}
public class People {
private final Room room;
public People(Room room) {
this.room = room;
}
}