每次创建 House 类的新实例时,我都会尝试创建一个唯一的属性代码。例如,当我在程序中创建第三个房子时,我需要它为它分配整数“3”,以便我可以使用该唯一代码引用该房子。我已经尝试使用全局静态变量进行此操作,并且在保留创建的正确数量的对象的同时,它只返回最后一个实例的值。
private static int houseNo = 0;
private int propertyCode;
public House(String s, Town t, Person o){
owner = o;
street = s;
town = t;
houseNo++;
propertyCode = houseNo;
}
public String toString(){
String temp = "";
temp = "Code: " + this.getPropCode() + " \nAddress:\n" + this.getStreet() + ", " + town.getTownName();
return temp;
}
假设我在主类中创建了 6 个房子,使用 toString 访问任何房子只会返回 6 来代替 getPropCode()。
有任何想法吗?
编辑(更多代码):
public int getPropCode(){
return propertyCode;
}
从我的主要课程:
public static void main(String[] args) {
House house1 = new House("blueberry", town1, fred);
House house2 = new House("blackberry", town2, barney);
House house3 = new House("redberry", town3, fred);
int whichHouse = Integer.parseInt(JOptionPane.showInputDialog("Select a house to create a lease for \n1. " + house1.toString() + "\n2. " + house2.toString() + "\n3. " + house3.toString()));
请原谅我的命名约定,只是想弄乱这段代码。