本文繼續講Java封裝。上一篇:樂字節Java|GC垃圾回收機制、package和import語句java
此次講述JavaBean、繼承與權限修飾。
編程
封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和行爲(或方法)結合爲一個獨立的總體,並儘量隱藏對象的內部實現細節。安全
(1)隱藏實現細節,提供公共的訪問方式this
(2)好處:編碼
A:隱藏實現細節,提供公共的訪問方式spa
B:提升代碼的複用性設計
C:提升代碼的安全性code
(3)設計原則對象
把不想讓外界知道的實現細節給隱藏起來,提供公共的訪問方式繼承
(4)private是封裝的一種體現。
public、protected、private、default
例1:
public class Use{ public static void main(String[] args) { Show.show("封裝"); } } //對System.out.println(str)的封裝,直接調用就好 class Show{ public static void show(String str){ System.out.println(str); } }
例2
public class Man { //對屬性的封裝,一我的的名字,年齡,妻子都是這個對象(人)的私有屬性 private String name; private int age; private Woman 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; } //此處少了一個getWife()方法,是由於該男人不想讓外界訪問本身的妻子 public void setWife(Woman wife){ this.wife=wife; } } 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; } }
JavaBean
自己是一個類,屬於Java的面向對象編程,是一個封裝對象實例的封裝類。
javaBean編碼規則:
(1) javaBean必須聲明爲public class,這樣纔可以被外部所訪問;
(2) 一個JavaBean中至少存在一個無參構造方法
(3)類中全部的屬性都必須封裝,即:使用private聲明;
(4)爲封裝的私有屬性提供公共的setter、getter方法;
繼承:子承父業
繼承的本質在於抽象。類是對對象的抽象,繼承是對某一批類的抽象,從而實現對現實世界更好的建模。同時使用繼承能夠提升代碼的複用性。(事實上,利用組合能夠更好的實現代碼複用!)extends的意思是「擴展」。子類是父類的擴展。
java中使用extends關鍵字實現類的繼承機制,語法規則:
<modifier> class <name> [extends <superclass>]{}
做用: 實現代碼的複用,延續+擴展父類信息。
經過繼承,子類自動擁有了基類的全部成員(成員變量和成員方法)。
Java只支持單繼承,不容許多繼承:一個子類只能擁有一個基類,一個基類能夠派生出多個子類
Java權限修飾符 public protected private 置於類的成員定義前,用來限定其餘對象對該類對象成員的訪問權限。
經過訪問權限的控制達到信息隱藏
理解:如電腦 利用一個外殼包裹,保護了裏面的電器元件,提供了少許的按鍵與其對接使用。我要看電視,只須要按一下開關和換臺就能夠了。有必要了解電視機內部的結構嗎?有必要碰碰顯像管嗎?
製造廠家爲了方便咱們使用電視,把複雜的內部細節所有封裝起來,只給咱們暴露簡單的接口,好比:電源開關。具體怎麼內部實現的,咱們不須要操心。再好比你的手機,手機的鍵盤,屏幕,聽筒等,就是其對外接口。你只須要知道如何按鍵就可使用手機,而不須要了解手機內部的電路是如何工做的。封裝機制就像手機同樣只將對外接口暴露,而不須要用戶去了解其內部實現。細心觀察,現實中不少東西都具備這樣的特色。
須要讓用戶知道的暴露出來,不須要讓用戶瞭解的所有隱藏起來。這就是封裝。白話:「該露的露,該藏的藏」。
概念:
咱們程序設計要追求「高內聚,低耦合」。高內聚就是類的內部數據操做細節本身完成,不容許外部干涉;
低耦合:僅暴露少許的方法給外部使用。
public: 一覽無遺;
protected:子承父業 (兒子本身使用);
default :家庭和氣;
private :佔爲已有。
對於class的權限修飾只能用public和default。
public 類能夠在任意地方訪問
default類只能夠在同包被訪問
1)、屬性儘量私有化 private
2)、訪問器: setter與getter訪問器 >private ,通常public居多
setterXxx: 存儲 與 getterXxx: 查看