在Java中访问多个类之间的变量

时间:2013-01-25 20:56:49

标签: java oop variables methods

假设我有3个不同的类:

班级人员教室 Class House

它们是这样链接的:

在班级众议院我这样做:Room room = new Room(); 在课堂房间我这样做:Person person = new Person();

亲自我有这个方法:

public String getName(){
 return name;
}

如何从 House

类访问此方法

我现在的方法是重复 Room 课程中的方法,如:

public String getName(){
 return person.getName();
}

所以在 House 中,我从房间调用getName()方法,在房间中调用方法{{1}来自。所以名称变量然后从通过房间传递到房子

但是这样我就会复制我需要在House中访问的所有Person方法。这可能不对......我想过'延伸',但这没有意义。 有人可以向我解释(我现在有很多方法都在我的代码中)。 它可能是基本的OOP东西,但我似乎无法弄明白。

提前致谢!

2 个答案:

答案 0 :(得分:2)

  

但是这种方式我正在复制Person所需的所有方法   进入众议院。这可能不对......

你是对的。你不需要这样做。这不是正确的方法。

由于您在Person课程中有Room引用,因此您只需为person定义“getter”: -

public Person getPerson() {
    return person;
}

然后形成您的House课程,您可以获得person名称和其他详细信息: -

room.getPerson().getName();
room.getPerson().getAge();

因此,基本上,您在person课程中获得了room实例的House引用(不是人员实例本身的副本)的副本。然后使用该引用,就像它仅在House类中定义一样。

还有一点,我看到你的吸气剂是私人的。你不应该这样做。将它们公之于众,否则它们将无法在外面访问。 <{1}}和getters几乎应该一直公开。

答案 1 :(得分:1)

将人作为房间的财产。

你所拥有的有点奇怪,因为人们会期望room.getName()返回房间的名称。

相反Room应该有一个getPerson()方法,所以当需要一个人名时,room.getPerson()。getName()