PYDOING: Java 入門指南- getter 與setter - 程式語言教學誌

文章推薦指數: 80 %
投票人數:10人

Java 入門指南- getter 與setter. 屬性(field) 需要有效的封裝(encapsulation) 到物件(object) 裡頭,因此類別(class) 定義屬性時,應該宣告(declare) 為private ,也 ... 網頁 導論 G+專頁 G+社群 FB粉絲團 FB社團 微博 YouTube Twitter GitHub 關於本站 意見提供或問題回報 新站 公告 《如何自學程式設計》入選GooglePlay台灣地區2016年度最佳書籍|本站於GooglePlay銷售電子書。

預計之後會調整本站內容,凡是有兩個版本的教材,舊版本將刪除。

------ Udemy|Python專案開發入門的二十一堂課|促銷優惠 Java入門指南-getter與setter 屬性(field)需要有效的封裝(encapsulation)到物件(object)裡頭,因此類別(class)定義屬性時,應該宣告(declare)為private,也就是私有的,只限定義他的類別可以存取,然後另外定義宣告為public的getter與setter方法(method),利用setter設定屬性,另外用getter取得屬性值 為什麼要這麼做呢?理由其實很簡單,為了防止物件遭不當的使用,例如 Encryptt=newEncrypt(); t.cArray={'a'};//重新將cArray設定為另一個陣列 Encrypt型態的變數t先以沒有參數版本的建構子(constructor)建立新物件,然後突然將cArray重新設定為對另一個陣列的參考,這樣一來,原先的對換表格就不見了說,往後加入編碼與解碼的方法,使用錯誤的表格,就會造成難以回復的結果。

雖然這是我們刻意弄的例子,自己寫程式真實情況常常會有打錯字之類的,例如原本要將a設定為1,結果按成0 t.a=0;//把a設定錯誤 當然,我們自己開發程式可以自己小心點就好,但是,假如我們的類別準備提供給別的程式設計師或開發團隊使用的話,別人就不見得會這麼小心了。

因此,物件導向程式設計(object-orientedprogramming)中提供封裝的意義即在此,類別的屬性應該宣告為private privatechar[]cArray=newchar[26]; privateinta; privateintb; privateintn; privatecharc; privateintdiff; 六個屬性就需要六個宣告為public的getter方法 publicintgetA(){ returna; } publicintgetB(){ returnb; } publicintgetN(){ returnn; } publicchargetC(){ returnc; } publicintgetDif(){ returndiff; } publicchar[]getArray(){ returncArray; } 注意,建構子不需要回傳值型態,方法定義時需要標明回傳值型態,如果沒有回傳值,就須標上void,如另外六個setter方法 publicvoidsetA(intarg){ a=arg; } publicvoidsetB(intarg){ b=arg; } publicvoidsetN(intarg){ n=arg; } publicvoidsetC(chararg){ c=arg; } publicvoidsetDif(intarg){ dif=arg; } publicvoidsetArray(){ inti,d,ci,m; charr; for(i=0;i



請為這篇文章評分?