[Java] 5.2. 設值式&取值式

透過取值式與設值式改變屬或存取的行為。

 

image/svg+xml5.2 設值式&取值式 – Setter Getter class Person { String id; String name; String gender; private int age ; void show() { System.out.println( " 我的⾝份證字號是 " + id); System.out.println( " 姓名是 " +name); System.out.println( " 姓別是 " +gender); System.out.println( " 年齡是 " +age); } void setAge ( int newAge ){ age = newAge ; } } class Main{ public static void main( String [] args){ Person p1 = new Person (); p1.id = "k111222000" ; p1.name = " 林⼩美 " ; p1.gender = " 女⽣ " ; p1 . setAge ( 20 ); p1 . show (); } } 執⾏結果 K111222000 林⼩美 女⽣ 20 class Person { String id; String name; String gender; private int age ; void show() { System.out.println( " 我的⾝份證字號是 " + id); System.out.println( " 姓名是 " +name); System.out.println( " 姓別是 " +gender); System.out.println( " 年齡是 " +age); } void setAge( int newAge){ age = newAge; } int getAge ( ) { return age ; } } class Main{ public static void main( String [] args){ Person p1 = new Person (); p1.id = "k111222000" ; p1.name = " 林⼩美 " ; p1.gender = " 女⽣ " ; p1 . setAge ( 20 ); System.out.println( p1 . getAge ()); } } 執⾏結果 20 J5_2_1 – Person.java 7. 建立⼀個⼈員物件。 . 這是⼈員類別( Person )。 2. 年齡屬性( age )在此使⽤ private 進⾏私 有化,此年齡屬性只可由物件內部進⾏存取。 6. 回傳值設為 void 的原因,是因為通常設值式中 是⽤來設定屬性資料的的,因此不需要回傳資料。 3. age 屬性加上設值式,⽅法的命名⽅式通常 會⽤ “set”+“ 屬性名稱 來命名。 4. 因為是要進⾏設定的關係,因此會宣告⼀ 個參數,表⽰透過參數可將新的值傳入。 5. 在⽅法中使⽤年齡屬性,即表⽰物件將透過此⽅法來設定年齡屬性。 J5_2_1 – Main.java 9. 最後透過⼈員的⾃我介紹⽅法( show() )取得⼈員的所有資訊,其中的 20 即為 年齡屬性中的值- 20 ,這表⽰年齡設值式以成功的將 20 設⾄私有化的年齡屬性中。 8. ⼈員物件上的年齡屬性,是間接由年齡設值式來設定年齡的屬性值。即便年齡屬性是私 有化的,但年齡設值式是非私有化的,因此透過年齡設值式來代由設定年齡的屬性值為 20 J5_2_2 – Person.java J5_2_2 – Main.java . 這是⼈員類別( Person )。 2. 年齡屬性( age )在此使⽤ private 進⾏私 有化,此年齡屬性只可由物件內部進⾏存取。 3. 為年齡屬性加上取值式,⽅法的命名 ⽅式是以 “get”+“ 屬性名稱 來命名。 4. 年齡設值式⽅法的⽬的在於取得 age 屬性 的數值,因此不需要有參數。 5. 年齡設值式的⽬的是取得年齡屬性中的數值,因此要設定回傳值的型別。 6. 使⽤ return 將年齡屬性 中的數值直接回傳。 7. 建立⼀個⼈員物件。 8. 即便年齡屬性是私有化的,但因為我們提供了年齡屬性的設值式與取值式。 因此年齡屬性皆可以間接由年齡屬性的設值式與取值式來進⾏式取。 9. 在呼叫年齡取值後,即可取得 私有化年齡屬性中的值 20 聰明的讀著已經發現,為何我們要多此⼀舉,將年齡屬性( age )私有化,⼜ ⼤費周張的將提供年齡取值式與年齡設值式,⽬的⼜是為了從物件外部間接存 取年齡屬性,那當初不要對年齡私有化,不就沒這些問題了嗎?!放⼼,以上 基礎知識的建設,正是要為物件導向的封裝作準備,⽽封裝才是我們要學習的 主要知識,同時也可達到 女⽣不透露真實年齡 的需求。 取值式,取得年齡屬性 設值式,設定年齡屬性 1 1

留言