Java編程的三大特性理解

Java編程的三大特性理解

北大青鳥長沙麓谷校區(qū)      2022-03-27 21:10:01     3

Java編程的三大特性理解,1、對象(object)萬物皆為對象(根類Object類)。程序是對象的集合(面向?qū)ο蟪绦蛟O(shè)計(jì)語言O(shè)OP)。每個對象都有自己的由其他對象

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細(xì)介紹

1、對象(object)

萬物皆為對象(根類Object類)。

程序是對象的集合(面向?qū)ο蟪绦蛟O(shè)計(jì)語言O(shè)OP)。

每個對象都有自己的由其他對象所構(gòu)成的存儲(對象有成員屬性)。

每個對象都擁有其類型(每個對象都是某個類class的一個實(shí)例instance)。

某一特定類型的所有對象都可以接收同樣的信息(繼承)。

2、類型(type)

類描述具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象集合。是面向?qū)ο笤O(shè)計(jì)除了基本數(shù)據(jù)類型外的,一種通用的數(shù)據(jù)類型。

3、對象作為“服務(wù)提供者”

提高對象的內(nèi)聚性,將對象的設(shè)計(jì)簡化,并凸顯其提高的服務(wù)價值。

高質(zhì)量代碼的基本要求是:可復(fù)用、高內(nèi)聚、低耦合。

4、封裝(信息隱藏)

指利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起,使其構(gòu)成一個不可分割的獨(dú)立實(shí)體,數(shù)據(jù)被保護(hù)在抽象數(shù)據(jù)類型的內(nèi)部,盡可能地隱藏內(nèi)部的細(xì)節(jié),只保留一些對外接口使之與外部發(fā)生聯(lián)系。系統(tǒng)的其他部分只有通過包裹在數(shù)據(jù)外面的被授權(quán)的操作來與這個抽象數(shù)據(jù)類型交流與交互。用戶無需知道對象內(nèi)部方法的實(shí)現(xiàn)細(xì)節(jié),但可以根據(jù)對象提供的外部接口(對象名和參數(shù))訪問該對象。

一句話總結(jié):

所謂封裝,就是把數(shù)據(jù)和方法保護(hù)在類的內(nèi)部,只允許可信的類或?qū)ο蟛僮?,對不可信的進(jìn)行信息隱藏。

好處:

(1)實(shí)現(xiàn)了專業(yè)的分工。

將能實(shí)現(xiàn)某一特定功能的代碼封裝成一個獨(dú)立的實(shí)體后,各程序員可以在需要的時候調(diào)用,從而實(shí)現(xiàn)了專業(yè)的分工。

(2)隱藏信息,實(shí)現(xiàn)細(xì)節(jié)。

通過控制訪問權(quán)限可以將可以將不想讓客戶端程序員看到的信息隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發(fā)權(quán)限。

5、繼承(代碼復(fù)用)

is-a:純粹替代,extends。

is-like-a:擴(kuò)展替代,extends與implements。

子類與父類的關(guān)系并不是日常生活中的父子關(guān)系,子類與父類而是一種特殊化與一般化的關(guān)系,是is-a的關(guān)系,子類是父類更加詳細(xì)的分類。

繼承后子類自動擁有了父類的屬性和方法,但特別注意的是,父類的私有屬性和構(gòu)造方法并不能被繼承。

另外子類可以寫自己特有的屬性和方法,目的是實(shí)現(xiàn)功能的擴(kuò)展,子類也可以復(fù)寫父類的方法即方法的重寫(overriding)。

一句話總結(jié),

所謂繼承,就是可以使用現(xiàn)有類的所有數(shù)據(jù)和方法(包括私有的),并且不需要重復(fù)編寫現(xiàn)有類,實(shí)現(xiàn)功能擴(kuò)展,達(dá)到代碼復(fù)用。

注意:設(shè)計(jì)繼承的時候,若要讓某個類能繼承,父類需適當(dāng)開放訪問權(quán)限,遵循里氏代換原則,即向修改關(guān)閉對擴(kuò)展開放,也就是開-閉原則。

6、多態(tài)(polymorphism)

相同接口的對象,調(diào)用其相同的方法,參數(shù)也相同時,但表現(xiàn)的行為卻不同。

多態(tài)分為編譯時多態(tài)(又稱靜態(tài)多態(tài)),以及運(yùn)行時多態(tài)(又稱動態(tài)多態(tài))。

編譯時多態(tài),是指程序在編譯過程就可以確認(rèn)調(diào)用哪個方法。

運(yùn)行時多態(tài),是指程序中的引用對象指向的哪個具體類型,以及該對象通過哪個具體方法調(diào)用,在編程中并不能確定,只有在運(yùn)行時確定。這樣,我們可以讓引用對象綁定到不同的實(shí)現(xiàn)類上,從而實(shí)現(xiàn)該對象將有不同的具體方法調(diào)用,程序在運(yùn)行時就有多個運(yùn)行狀態(tài)。

實(shí)現(xiàn)編譯時多態(tài):static、重載

實(shí)現(xiàn)運(yùn)行時多態(tài):繼承、重寫、向上轉(zhuǎn)型

子類以父類的身份出現(xiàn),但做事情時還是以自己的方法(請注意是非private方法)實(shí)現(xiàn)。

子類以父類的身份出現(xiàn)需要向上轉(zhuǎn)型(upcast),其中向上轉(zhuǎn)型是由JVM自動實(shí)現(xiàn)的,是安全的,但向下轉(zhuǎn)型(downcast)是不安全的,需要強(qiáng)制轉(zhuǎn)換。

子類以父類的身份出現(xiàn)時自己特有的屬性和方法將不能使用。

注意:以下情況可能多態(tài)無效:

1、private方法重載

2、屬性同名且可以顯式訪問

3、static方法同名

以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“Java編程的三大特性理解”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時為你服務(wù)。

培訓(xùn)啦提醒您:交易時請核實(shí)對方資質(zhì),對于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹(jǐn)防上當(dāng)。