- 可避免類別中的屬性直接被存取
- 當class中的method有更動時, 可以確保每支使用到該class的程式都可以統一做變更
例如:
class Book { private int price; public void setPrice(int price) { // 此部分的if判別式, 若可以搭配例外處理會有更良好的效果. if(price >= 0) { this.price = price; } else { System.out.println("金額不得小於零"); } } public int getPrice() {return price;} } public class BookDemo { public static void main(String[] args) { Book book = new Book(); Book.setPrice(10); System.out.println(Book.getPrice()); Book.setPrice(-10); } }
透過封裝的方式撰寫Book類別, 凡是要使用Book類別的人,
在設定price之值時, 一定要使用setPrice(),
而要取得price之值時, 則要透過getPrice(),
且可以設定存入price是否大於0, 以防止不慎鍵入負號"-",
若price值必須大於10時, 也可以統一做修正,
使每個用到Book類別的程式可以統一更新.
沒有留言:
張貼留言