2016-04-13 64 views
0

我想创建一个方法,结合第一个和最后一个名称变量来创建一个fullName变量,但我一直得到null而不是全名?我没有收到任何实际的错误,所以我不知道哪里出错了?从字符串方法获取“null”[java]

@Override 

public String toString() { 
    return String.format("%-22s %.2f %-4s %s", fullName, gpa, major, year); 

    } 

    public void setfirstName(String firstName) { 
    this.firstName = firstName; 
    } 

    public String getfirstName() { 
    return firstName; 

    } 

    public void setlastName(String lastName) { 
    this.lastName = lastName; 
    } 

    public String getlastName() { 
    return lastName; 

    } 
public void setfullName(String fullName) { 
    fullName = (lastName + ", " + firstName); 
    } 

    public String getfullName() { 
    return fullName; 

回答

1

这里,您的全名是以下方法中的局部变量。

public void setfullName(String fullName) { 
    fullName = (lastName + ", " + firstName); 
} 

成全它的对象和用户this.fullname的属性来分配全部name.Also有一个在参数传递到setFullName()方法是没有意义的,因为你在做什么是串联名字和姓氏。

public void setfullName() { 
    this.fullName = (lastName + ", " + firstName); 
} 

因此,您不能使用setFullName()方法,而只能使用getFullName()方法,如下所示。

public String getfullName() { 
    return lastName + ", " + firstName; 
} 
+0

我仍然'null'。我最初尝试过getfullName方法,但它给了我null这就是为什么我认为我需要setter,任何想法为什么它这样做? – Inez

+0

,因为在类中没有名为firstName的属性。即使在setFullName方法中有另一个同名的变量,它是本地的。您正在分配给该局部变量。要分配类变量,请使用this.fullName。 –

+0

我很抱歉,但我很困惑,我到底在哪里使用this.fullname?在firstName方法之一中还是在toString中? – Inez