假设我有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东西,但我似乎无法弄明白。
提前致谢!
答案 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()