|
先來(lái)個(gè)例子看看; public class Man { //對(duì)屬性的封裝,一個(gè)人的姓名,年齡,妻子都是這個(gè)對(duì)象(人)的私有屬性 private String name; private int age; private Woman wife; //對(duì)改人對(duì)外界提供方法的封裝,可以設(shè)定妻子,姓名,年齡也可以獲得男人的姓名和年齡 public void setWife(Woman wife) { this.wife = wife; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } public class Woman { //屬性封裝 private String name; private int age; private Man husband; //方法封裝 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Man getHusband() { return husband; } public void setHusband(Man husband) { this.husband = husband; } } /** * 仔細(xì)看就會(huì)發(fā)現(xiàn),Man類沒有提供getWife的方法,這是以為男人不想讓自己的妻子被外界訪問, * * 直接下來(lái)呢,就是封裝可以吧一個(gè)對(duì)象的屬性私有,而提供一些可以被外界訪問的屬性的方法, * * 比如說(shuō),name屬性,Man和Woman類都有相應(yīng)的get和set方法,外界都可以通過這些方法訪問和修改 * * 同時(shí)對(duì)一些改對(duì)象不想讓外界訪問的屬性,就不提供其方法,比如說(shuō)Man的wife屬性,就沒有g(shù)et方法 * * 外界是不能帶到Man類的wife屬性的 * */ 上面那例子可能沒有突出封裝的好處,下面來(lái)個(gè)超簡(jiǎn)單的表達(dá)下: public class Show { public static void show(String str) { System.out.println(str); } } 上面就是對(duì) System.out.println();的封裝。 調(diào)用的時(shí)候 : public class Use { public static void main(String[] args) { Show.show("封裝"); } } 這樣用的時(shí)候就不用使:System.out.println("封裝"); 如果還有地方用到, 就省去了好多 System.out.println(); 簡(jiǎn)而言之,有一段代碼,如果3個(gè)程序要用它,你不封裝,那你就得在這3個(gè)程序里都要寫,浪費(fèi)代碼,浪費(fèi)時(shí)間。 |
|
|