Okaii所以我写了两个类,主要做了(还在测试,还没有完成),运行之后,它在输出中给出null,这意味着默认值..为什么?
位置等级(使用setter和getter)
public class Location {
public String city;
public String street;
public Location() {
}
public Location(String city, String street) {
this.city = city;
this.street = street;
}
@Override
public String toString(){
return "City Is : " + city + " \nStreet Is : " + street;
}
}
这是属性类中的组合:(还有setter和getter)
public Location location = new Location();
public static int counter = 0;
public Property(int ID, Location location) {
this.ID = ID;
this.location = new Location();
counter++;
}
public String toString() {
return "\nID is : " + ID + "\nLocation is : \n" + location.toString();
}
输出结果为:
输入Propery ID:
123
进入物业城和街道:
测试
TEST1
您想要输入更多房地产数据吗?
没有
从以下菜单中选择一个选项:
1-列出所有属性。对于每个属性显示其id和位置
2-列出所有属性位置。对于每个属性仅显示位置
3-列出某个特定城市中所有房产的所有ID(阅读城市)
4-给定属性id改变其位置城市(读取城市的id和新值)
5-如果在数组中找到属性,则显示属性的位置(读取id)
6-显示属性数量
7-退出
1
物业1 ID是:123 位置是: 城市是:null 街道是:null
答案 0 :(得分:1)
在Property
构造函数中,我认为你应该有
this.location = location;
答案 1 :(得分:0)
在Property类中:this.location = new Location();
而不是使用location
参数。
答案 2 :(得分:0)
您的位置的空构造函数不会初始化字段city
和street
,因此当您使用该构造函数构建Location对象时,您需要确保手动设置这些值。或者只是删除该构造函数并仅使用它:
public Location(String city, String street) {
this.city = city;
this.street = street;
}