Re: [問題] setXXX

看板java作者 (加油加油)時間19年前 (2006/07/18 22:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/22 (看更多)
※ 引述《oishii (喔帥)》之銘言: : ※ 引述《sioo (加油加油)》之銘言: : : 請問一下,我發現在很多的API裡面, : : 在建立物件時,都不直接使用建構子來建立物件, : : 一些參數都要透過setXXX()的方法來給值, : : 請問使用這種方法有什麼好處嗎? : : 用建構子不是更方便嗎 謝謝... : 應該是針對封裝性來做考量 : 一些instance variable在encapsulation的考量之下 應設為private : 然後透過getXX()與setXXX()的method來做讀取與設定 : 利用這樣的方式可以避免一些錯誤的產生 : 比如說某一個instance variable必須為正數 : 在setter的方法內就可以做這樣的寫入限制 : 我也是初學者可能沒回答到你的問題 : 因為我搞不大懂constructor跟參數設定的關係為何 : 一般用new呼叫constructor產生一個instance之後應該就不會再呼叫建構子了 : 如果你的意思是說 建構子內用setter的方式來做設定 : 那裡由應該就是我上一段講的那樣 : 還請高手指教 不好意思,可能是我沒問清楚吧,譬如像google search的api GoogleSearch search = new GoogleSearch(); search.setKey("000000000000000000000000"); search.setQueryString("Internet standards"); search.setSafeSearch(true); GoogleSearchResult result = search.doSearch(); 為什麼不乾脆寫一個建構子 GoogleSearch(key,query,isSafe) 這樣不是比較快嗎?為什麼還要用setXXX()的方法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.200.146
文章代碼(AID): #14lF8Y13 (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 3 之 22 篇):
問題
文章代碼(AID): #14lF8Y13 (java)