2016-04-13 11 views
0

私はfullName変数を作成するためにファーストネームとラストネームの変数を組み合わせたメソッドを作成しようとしていますが、フルネームの代わりにnullを取得し続けますか?実際のエラーは発生していないので、どこが間違っているのか分かりません。Stringメソッドから "null"を取得する

@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); 
} 

ちょうどそれフルname.Alsoを割り当てるオブジェクトの属性とユーザthis.fullname何をやっていることは、最初の名前を連結しているのでsetFullName()メソッドにパラメータを渡すにはポイントは、ありませんしますそして最後の名前。代わりにsetFullName()メソッドを使用するのでは、次のように

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

したがって、あなただけのgetFullName()メソッドを使用することができます。

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

私はまだ「null」を取得しています。私はgetfullNameメソッドを最初に試してみましたが、それはなぜ私はsetterが必要だと仮定したのですか? – Inez

+0

という名前のクラスにfirstNameという名前の属性が含まれていないためです。 setFullNameメソッドには、ローカルである同じ名前の別の変数があります。そのローカル変数に代入しています。クラス変数を割り当てるには、this.fullNameを使用します。 –

+0

私は申し訳ありませんが、私は混乱しています。どこでthis.fullnameを使用すると思いますか? firstNameメソッドの1つまたはtoString内の? – Inez

関連する問題