2013-01-18 82 views
0

我想重寫toString()方法來顯示用戶名,但Name是User類的內部類,所以如何打印它。在toString中打印對象的值

public class User 
{ 
    public static class Name 
    { 
     private String _first, _last; 

     public String getFirst() { return _first; } 
     public String getLast() { return _last; } 

     public void setFirst(String s) { _first = s; } 
     public void setLast(String s) { _last = s; } 
    } 
    private Name _name; 
    public Name getName() { return _name; } 
    public void setName(Name n) { _name = n; } 

    @Override 
    public String toString() 
    { 
     return "";//How to print first name and last name here 
    } 
} 
+0

你是.Net開發者嗎?在Java中不建議使用_變量。 順便說一句,只是返回_name.getFirst()+ _name.getLast(); – madhairsilence

+0

Name是內部類的事實與你如何訪問變量_name的屬性完全沒有關係。 – Perception

+0

@madhairsilence它現在很少見。 。 。但它真的不建議?它仍然是this.name = name的替代方案,不是嗎? –

回答

1

嘗試這樣

@Override 
    public String toString() { 
     return _name.getFirst()+_name.getLast(); 
    } 
1

如何

public String toString() 
{ 
    Name name = getName(); 
    return name.getFirst() + " " + name.getLast(); 
} 
1

試試這個:

@Override 
public String toString() 
{ 
    String a = getName()._first; 
    String b = getName()._last; 
    return "a: " + a + " :: b: " + b;//How to print first name and last name here 
} 

User user = new User(); 
User.Name name = new User.Name(); 
name.setFirst("first name"); 
name.setLast("last name"); 
user.setName(name); 
System.out.println(user); 
0

如果你想返回例如John Deer你可以試試這個代碼:

@Override 
    public String toString() 
    { 
     return _name.getFirst().concat(" ").concat(_name.getLast()); 
    } 

concat(string str)附加字符串str它被稱爲在String對象的末尾。 你可以在鏈接上閱讀更多關於它的信息。

上面提供的代碼片段將從_name中讀取First Name,在它後面追加一個空格,然後在最後一個字符串上附加Last name

0
@Override 
    public String toString() 
    { 
     return _name.getFirst() + " " + _name.getLast(); 
    } 

這樣的調用。

public class MyMain { 
    public static void main(String[] args) { 
     User.Name name = new Name(); 
     name.setFirst("Clement"); 
     name.setLast("Alexandria"); 
     User user = new User(); 
     user.setName(name); 
     System.out.println(user); 
    } 
}