对象返回null

时间:2015-06-18 13:43:01

标签: java object null

要点: Java新手,尝试浏览其他帖子,但没有找到答案。我正在学习继承并且有一个由Runner类扩展的AddressBook类。当我编写一个程序来测试继承时,我创建了一个Runner对象。如果我得到第一个String参数,它返回正常,但是当我尝试获取第二个String参数时,它返回null。

问题: 为什么第二个参数返回null?

$("body").pagecontainer("change", "#home", { transition: "none" });

3 个答案:

答案 0 :(得分:4)

因为lastName为空。

您正在呼叫AddressBook(String firstName, String middleName)

并设置middleName,而不是lastName

答案 1 :(得分:2)

BanffMarathonRunner r1 = new BanffMarathonRunner("Elena", "Brandon", 341, 1);

调用:

// firstName = "Elena"
// lastName = "Brandon"
// min = 341
// yr = 1
public BanffMarathonRunner(String firstName, String lastName, int min, int yr) {
    super(firstName, lastName);
    // ...
}

通过super(...)调用:

// firstName = "Elena"
// middleName = "Brandon" <-- here is your issue
public AddressBook(String firstName, String middleName) {
    this.firstName = firstName;
    this.middleName = middleName;
}

Brandon设置在AddressBook#middleName而不是AddressBook#lastName

答案 2 :(得分:0)

您的问题出在BanffMarathonRunner.java:

在调用

时,在构造函数中

super(firstName, lastName);

实际上通过上面的调用,调用了带有两个参数的超类构造函数,并且该构造函数是设置middleName而不是lastName的构造函数。

我认为你因为lastName变量名而感到困惑,它使用两个参数传递给构造函数,而构造函数使用第二个参数来设置middleName。

祝你好运。