我是Stack Overflow和Java的新手,在想出一种方法来利用来自其他两个类的属性的类时遇到了麻烦。它不需要所有属性,只需选择一个即可。
我有一所房子,一个城镇和一个人班。房屋需要城镇的城镇名称和人的名字和phNumber
的地方。
到目前为止,这是我的代码:
public class Town {
protected String name;
private int postCode;
public Town (String tName , int tCode){
name = tName;
postCode = tCode;
}
public String getName(String name){
return name;
}
public int getCode(int postCode){
return postCode;
}
和人类:
public class Person {
protected String pName;
private long pNumber;
public Person (String name,long number){
pName = name;
pNumber = number;
}
public String getPersonName(String name){
return pName;
}
public long getNumber(long number){
return pNumber;
}
public void setNumber(long newNumber){
pNumber = newNumber;
}
而我的房屋课:
public class House extends Person, Town {
public House(String address , String name, int code , String pName, Long pNumber) {
this.name = Person.pName;
}
}
但是,正如您所看到的,我似乎无法让家庭教师去做我想要的事情,并且在搜索了在线资源之后,在此问题上找不到太多帮助。朝正确方向的任何指针将不胜感激。
最佳答案
第一个问题:您想使用什么以及如何使用?您应该使您的类反映具有含义的内容,从而使您更容易想到如何创建和使用它们。
例如,House
可以在Town
中,并且包含Person
public class House
{
private Town inTown;
private Person owner;
public House (Town inTown, Person owner)
{
this.inTown = inTown;
this.owner = owner;
}
public String getTownName()
{
return this.inTown.getName();
}
}
或者,如果您真的只关心名称:
public class House
{
private String townName;
private String ownerName;
public House (Town inTown, Person owner)
{
this.townName = inTown.getName();
this.ownerName = owner.getName();
}
public String getTownName()
{
return this.townName;
}
}
如果内存不是问题,我建议第一种解决方案,因为它更易于扩展和维护。