1. 程式人生 > >對Java的四大特性的理解

對Java的四大特性的理解

工作幾年再回頭聊這些四大特性感覺很easy,的確這是Java的入門知識,但是要把這幾個特性說清楚及平時怎麼使用,估計好多人含糊其辭,大家估計都是心裡明白,愛在心中口難開。這其實是我們對Java的三大特性理解不深,我也藉此機會深入理解下Java的三大特性。

一,封裝

封裝的定義:隱藏物件的屬性及實現細節,僅對外公開訪問介面,控制外部訪問對外介面的訪問許可權,使物件內部資料及資料操作結合一個整體-類。

封裝的目的:增強物件的安全性及簡化程式設計,訪問者不需要了解內部 具體實現,只用通過開放的外部介面,當然對外的介面我們可以限制訪問許可權,對於封裝而言,一個物件它所封裝的是自己的屬性和方法,所以它是不需要依賴其他物件就可以完成自己的操作

封裝的好處:

1.隱藏資訊,實現細節,對外開放介面,並控制介面訪問許可權,比如使用者的賬號密碼是不會讓訪問者看到,但是我們可以通過登陸介面控制使用者的登入

2.良好的封裝能減少程式碼的耦合,當然這個需要

3.專業的分工,單一職責原則-每一個類只負責一項任務,這也是我們寫程式碼會潛意識會遵循這個原則,而不會把人的屬性寫到牲畜的類裡

二,繼承

如果兩個類的屬性,方法相同或相似,我們可以使用繼承降低程式碼的複用。Java中所有的類直接或間接繼承於Object類,Object是所有類的父類,而所有子類繼承父類的屬性,方法,除過父類私有的屬性及方法(private修飾),子類可重寫父類方法,

繼承的特點:

1.子類可以擁有父類非私有的屬性及方法,父類的構造方法子類也不能繼承

2.子類可以擁有自己的屬性與方法,

3.子類可以重寫父類的方法,一般這時父類的方法不能滿足子類的需求

4.Java的繼承是單繼承,子類最多隻能擁有一個父類

5.向上轉型,就比如狗屬於動物,我們可以直接叫狗是動物,比如:List list = new ArrayList();

繼承的缺陷:

1,繼承破壞了封裝,父類的屬性方法對於子類來說是透明的,這與封裝是相背離的

2,繼承是一種強耦合關係,程式碼結構中亂用繼承會造成牽一髮而動全身

繼承的使用:

考慮子類是否要向上轉型,如果子類是要向上轉型的那用繼承合適不過了,如果不是向上轉型那就請慎用繼承

三,抽象

抽象是現實的真實反應,但卻不和任何具體實現繫結。Java的抽象主要是抽象類和介面。

抽象的好處:

1.把物件的共性抽象起來,使的程式碼編寫簡單,容易維護,

2.定義介面或抽象類規範,所有實現或繼承的類或子類都要遵循這些規範,

3.抽象是對現實的真實反應,但又是高度抽象的,是不能被例項化

四,多型

不同類物件對同一訊息作出的不同反應,即貓狗都屬於動物,貓叫是咪,狗叫是汪。

多型存在的條件:

1.必須是繼承關係

2.子類重寫父類方法

3.父類引用指向子類物件

多型的分類:

1.編譯期間,即同一個類中方法的過載

2.執行期間,即子類對父類的方法的重寫

使用多型的好處:

1.擴充性:多型對程式碼有擴充性,增加子類不影響其他子類的執行,

2.介面性:多型是超類對子類提供共同介面,子類根據自己情況進行覆蓋或實現