封裝概念

Import Excel Data into Datatable

{
     private int number;
     private String name;
 
     public void setNumber(int number)
     {
          this.number=number;
     }
     public void setName(String name)
     {
          this.name=name;
     }
 
     public int getNumber()
     {
          return number;
     }
     public String getName()
     {
          return name;
     }
}

這樣寫有某些好處
1.當你要限定屬性的範圍的時候,不使用封裝就沒辦法阻止使用者輸入例外值, 例如你的number只能輸入0~100,你可以透過setter來做判斷, 不封裝的話,使用者就可以自由輸入任意數值。

2.容易判斷需要修改的程式未在哪個範圍, 例如今天我有一個取得某個值的 method,原本使用 array 來實作
但如果改成 linked-list 也許效能比較好?
如果沒有將整段程式碼封裝成一個 getter,那可能改這一樣東西要在專案裡面翻來翻去
找各處有寫到這個功能的 code,並且把它改成 linked-list
不過如果一開始就用 getter 封裝好了,我只要在 getter 裡面把原本的程式碼註解掉
改成新的 code,整個專案所有用到這個 getter 的地方馬上就跟著更新了
這樣可以省去很多無謂的時間在搜尋和修改程式碼。

封裝概念好文: http://caterpillar.onlyfun.net/Gossip/JavaEssence/Encapsulation.html