为什么要空虚?

时间:2014-03-30 11:12:50

标签: java output composition

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

3 个答案:

答案 0 :(得分:1)

Property构造函数中,我认为你应该有

this.location = location;

答案 1 :(得分:0)

在Property类中:this.location = new Location();而不是使用location参数。

答案 2 :(得分:0)

您的位置的空构造函数不会初始化字段citystreet,因此当您使用该构造函数构建Location对象时,您需要确保手动设置这些值。或者只是删除该构造函数并仅使用它:

public Location(String city, String street) {
    this.city = city;
    this.street = street;
}