我們程序設計要追求“低耦合,高內聚”。 高內聚就是類的內部數據操作細節自己完成,不允許外部干涉;低耦合是僅暴露少量的方法給外部使用,盡量方便外部調用。
編程中封裝的具體優點:
1. 提高代碼的安全性。
2. 提高代碼的復用性。
3. “高內聚”:封裝細節,便於修改內部代碼,提高可維護性。
4. “低耦合”:簡化外部調用,便於調用者使用,便於擴展和協作。
封裝的實現:
Java是使用“訪問控制符”來控制哪些細節需要封裝,哪些細節需要暴露的。 Java中4種“訪問控制符”分別為private、default、protected、public,它們說明了面向對象的封裝性,所以我們要利用它們盡可能的讓訪問權限降到最低,從而提高安全性。
下面說明它們的訪問權限問題。其訪問權限范圍如下表所示:
1. private 表示私有,只有自己類能訪問
2. default表示沒有修飾符修飾,只有同一個包的類能訪問
3. protected表示可以被同一個包的類以及其他包中的子類訪問
4. public表示可以被該項目的所有包中的所有類訪問
封裝的使用規范:
封裝的使用規范在下面這個demo中都有注釋,上例子:
package cn.ftf.o1; /** * 封裝的使用規范 * @author 房廷飛 * */
public class Person01 { private int id; //屬性一般用private控制訪問符
private String name; private int age; private boolean man; //建一個方法來更改屬性,還可以對屬性做一些其他操作,高內聚!
public void setName(int age) { if(age>=1&&age<=130) { this.age=age; }else { System.out.println("請輸入正確的年齡!"); } } public int getAge() { return this.age; } public void setName(String name) { this.name=name; } public String getName() { return this.name; } //eclipse中提供了生成set,get 方法的快捷鍵:右鍵source,選擇Generate Setters and Getters //下面為自動生成
public int getId() { return id; } public void setId(int id) { this.id = id; } public boolean isMan() { //boolean變量的get方法是is開頭
return man; } public void setMan(boolean man) { this.man = man; } public void setAge(int age) { this.age = age; } } class Boy extends Person01{ public void sayHello() { System.out.println("Hello"); //像這種普通的邏輯方法一般用public就可以
} }
2019-03-10 21:00:29 房廷飛 期待明天更好的自己!