PYDOING: Java 入門指南- getter 與setter - 程式語言教學誌
文章推薦指數: 80 %
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
延伸文章資訊
- 1Java Getter和Setter:基礎、常見錯誤和最佳實踐 - 每日頭條
Getter和setter在Java中廣泛使用。它看起來很簡單,但是並不是每個程式設計師都能正確地理解和實現這種方法。因此,在本文中,我將深入討論Java中 ...
- 2Java - 五分鐘學會Lombok 用法 - 古古's Blog
Lombok 是一個Java library,可以透過簡單的注解省略Java 的code,像是setter、getter、logger…等,目的在消除冗長的code 和提高開發效率.
- 3[Java] 關於getter與setter | 羅倫斯的IT航海日誌 - - 點部落
- 4java裏getter和setter的作用(轉載) - 程式人生
【java】類中使用getter和setter的優勢. http://www.importnew.com/9716.html. java有三大特性:封裝,繼承還有多態。 而今天,我來講一下其中最...
- 5Java』List<GetterSetter> 如何在陣列中使用Getter Setter
今天想來聊一下關於用Java的List陣列完成Getter-Setter這件事(`・ω・´)+ 如果你上網google: java setter ... Array<HashMap<String...