如何从班级到私人会员获取信息?

时间:2015-10-12 12:22:44

标签: java oop

我正在编写一个包含多个类的系统。有一个类存储为私有字段,另一个类的实例存储。第二类需要知道第一类中私有字段的信息。可以这样做吗?

编辑:我想做一个“房子”;这包括房间和人员

我组织的方式是在Room类中有一个People类的实例。但是,每个People实例都需要知道存储在房间中的房间号。那么如何从Room获取此信息?从更广泛的意义上讲,我如何从类中的私有字段获取信息到另一个类的实例,该类存储为类中的私有字段。

1 个答案:

答案 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;
    }
}