請問 public String toString() 這個的功能是什麼??這是我在範例看到的,
能不能說明一下,並且用個小範例來解釋這個的使用方法。
謝謝能幫忙的朋友!!
2006-09-17 11:44:17 · 4 個解答 · 發問者 ANDY 2 in 電腦與網際網路 ➔ 程式設計
補充/更正其他的回答和意見:1. 所有的 java 類別(class),內建或是自建的,都是 java.lang.Object 這個 class 的 subclass.2. 因此 public String toString() 這個 Object 類別的 method 是所有 java class 繼承來的, 所有的 java class 都有這個 method.3. 所有的 class 可以決定是否要改寫(override) toString(). Java API specification 建議所有的類別應該要改寫此method.4. toString() 的目的是傳回一個代表該物件的字串. 如果該類別沒有 override, 則 toString() 的原本功能將是傳回一個字串,內容是 : 該物件所屬類別名稱 + @ + 該物件 hash code 的16進位值也就是說,假設你的物件變數叫做 obj,則 toString() 內定傳回字串將等於以下 :obj.getClass().getName() + @ + Integer.toHexString(obj.hashCode())當然小老鼠符號(@)前後是要以單(或雙)引好括起來的.hashcode在此不贅述.例子 :public class st { //未改寫 toString() 的類別 public static void main(String args[]) { System.out.println("st的內建toString() : " + new st()); System.out.println("nc改寫的toString() : " + new nc()); }}class nc { //改寫 toString() 的類別 public String toString() { return "這是類別 nc, 為了解釋 toString() 功能"; } }將程式存成 st.java 編譯執行 即可看到2個狀況, 一個改寫了, 一個沒有改寫的.
2006-09-18 00:26:00 · answer #1 · answered by Samuel 5 · 0⤊ 0⤋
上面的 Samuel 說的沒錯,也解釋的很清楚,所有的物件會從Object這個class繼承toString() method。
2006-09-18 08:04:52 · answer #2 · answered by 吉他 5 · 0⤊ 0⤋
顧名思義,就是把它轉成字串。
假設你設計了一個叫 Human 的類別,裡頭有一個名字 (myName) 的欄位:
class Human {
private String myName;
public Human(String name) { myName = name; }
public String toString() { return myName; }
}
這樣一來,當你要印出一個人的名字時,你只要:
Human man = new Human("Tom");
System.out.println(man);
Java 內建的類別幾乎都有 toString 這個函式,目的就是讓你方便印出物件相關資訊的。
2006-09-17 19:33:04 · answer #3 · answered by ? 2 · 0⤊ 0⤋
那應該是使用者自訂的函數,而非內建函數。
2006-09-17 12:36:35 · answer #4 · answered by Almond 6 · 0⤊ 0⤋