Java 技巧一:傳回 this
Java 程式簡介運算式分枝迴圈陣列函數遞迴錯誤處理物件導向封裝繼承多型技巧函式庫字串數學正規表達式容器檔案網路資料庫視窗ThreadListener錯誤陷阱相關檔案相關資源教學錄影Eclipse考題解答訊息相關網站參考文獻最新修改簡體版English |
在物件導向的設計當中,我們可以用 Object.method() 這樣的語法執行某函數。假如一個函數沒有傳回值時,傳統上像 C 語言都會宣告為 void 而不傳回值,但是在物件導向語言中,我們通常會傳回其物件本身 (this),這樣讓我們可以直接透過 Object.method().method_1().method_2()…..method_k() 這樣的方式的串接性技巧執行函數,而不需要採用下列的冗長寫法。
程式範例一:傳回 this 並使用串接技巧的程式範例。以下是一個採用上述技巧的範例,在程式中我們在 setName() 與 setAge() 函數中都傳回了 this 物件,於是我們在主程式中可以利用下列的單行語句直接建構出一個具有姓名與年齡的 Person 物件,而不需要分成數行撰寫。
檔案:Person.java public class Person { public String name; public int age; public static void main(String[] args) { Person p = new Person().setName("John").setAge(22); System.out.println(p.ToString()); } public Person setName(String name) { this.name = name; return this; } public Person setAge(int age) { this.age = age; return this; } public String ToString() { return "person:name="+name+" age="+age; } } 執行結果
程式範例一的改良:加上 print() 函數。public class Person { public String name; public int age; public static void main(String[] args) { Person p = new Person().setName("John").setAge(22).print(); } public Person setName(String name) { this.name = name; return this; } public Person setAge(int age) { this.age = age; return this; } public String ToString() { return "person:name="+name+" age="+age; } public Person print() { System.out.println(ToString()); return this; } } 教學錄影 |
page revision: 8, last edited: 13 Oct 2011 01:56
Post preview:
Close preview