我是java中的新手。說,我有一個類個人。我想打印打印對象的引用
Individual ind = new Individual();
System.out.println(ind);
以上代碼給出了這樣的輸出:
[email protected]
- 這樣做有什麼意義呢?
- 對於那個對象它是一種獨特的編號 ?
- 我可以定製這個嗎?我的意思是寫一個我自己的功能 ,當打印時它會輸出?
- 如果是這樣,我該怎麼辦 這個?
我是java中的新手。說,我有一個類個人。我想打印打印對象的引用
Individual ind = new Individual();
System.out.println(ind);
以上代碼給出了這樣的輸出:
[email protected]
如果你想打印任何對象的有意義的內容,你必須實現自己的toString()
方法,這將覆蓋父(Object
)類的toString()
方法。默認情況下,所有類(無論你創建什麼)都會擴展Object
類。
示例代碼:
public class Individual {
private String name;
private String city;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("Name of Individual :").append(this.getName())
.append("\nCity :").append(this.getCity());
return builder.toString();
}
public static void main(String[] args) {
Individual individual = new Individual();
individual.setName("Crucified Soul");
individual.setCity("City of Crucified Soul");
System.out.println(individual);
}
}
輸出:
Name of Individual :Crucified Soul
City :City of Crucified Soul
如果你有很多變數較大的類,你可以使用XStream來實現你的toString()方法。 XStream將以XML格式打印對象。即使你可以將它們解析回等價對象。希望這會幫助你。
沒有解釋如何/爲什麼1922221真的出現在第一位。 – KNU 2014-11-18 11:37:18
這是默認的toString()方法的結果 - 類名+散列碼。這可以通過覆蓋toString()來覆蓋。
一些參考這裏:http://www.javapractices.com/topic/TopicAction.do?Id=55
我想你想覆蓋個人的toString。見http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html#toString()
由於尚未解釋,重寫toString()方法僅僅意味着您在類中創建了自己的toString()方法。通過在你的類中放入你自己的toString()版本,你可以讓java使用你的toString()方法而不是默認的方法。因爲原始的toString()方法返回一個字符串,但是,toString()方法也必須返回一個字符串。您的個人類將是這個樣子:
public class Individual{
//any other code in the class
public String toString(){
return "your string";
}
}
然後,當你叫你是System.out.print(IND);它會打印出你的字符串。
我已經詳細解答了我的答案。它會幫助你更多。謝謝 – Ahamed 2012-01-04 16:37:45