2016-04-13 29 views
0

Bir tamAdı değişkeni oluşturmak için ilk ve soyadı değişkenlerini birleştiren bir yöntem oluşturmaya çalışıyorum ancak tam ad yerine her zaman boş bırakıyorum. Hiçbir gerçek hata almıyorum, bu yüzden nerede yanlış gittiğini bilmiyorum.Dize Yöntemi'nden "null" alma [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; 

cevap

1

Burada, tam adınız, aşağıdaki yöntemde yerel bir değişkendir. ne yapıyorsun adı bitiştirmek olduğundan

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

Sadece tam name.also setFullName() yöntemine parametre geçirmeden hiçbir nokta, orada atamak o nesne ve kullanıcı this.fullname bir niteliğini yapmak ve soyadı. aşağıdaki gibi

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

Bu nedenle bunun yerine bir setFullName() yöntemini kullanarak, yalnızca getFullName() yöntemini kullanabilir.

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

Hala "boş" alıyorum. Başlangıçta sadece getfullName yöntemini denedim ama null verdi, bu yüzden setter'e ihtiyacım olduğunu düşündüm, neden yaptığını biliyor musun? – Inez

+0

çünkü sınıfta firstName adında bir öznitelik yok. Orada olsa bile, setFullName yönteminde, aynı ada sahip başka bir değişken var, yerel olan. Bu yerel değişkene atandınız. Sınıf değişkenini atamak için this.fullName kullanın. –

+0

Üzgünüm ama kafam karıştı, tam olarak nerede this.fullname kullanmak için varsayalım? FirstName yöntemlerinden birinde mi yoksa toString içinde mi? – Inez