- 可避免類別中的屬性直接被存取
- 當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類別的程式可以統一更新.
沒有留言:
張貼留言