Java面向?qū)ο蟮念}目有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹“Java面向?qū)ο蟮念}目有哪些”,在日常操作中,相信很多人在Java面向?qū)ο蟮念}目有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java面向?qū)ο蟮念}目有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比福海網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式福海網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋福海地區(qū)。費用合理售后完善,10年實體公司更值得信賴。

問題一、面向?qū)ο蠖加心男┨匦砸约澳銓@些特性的理解繼承

1、繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段。

2、封裝:通常認為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向?qū)ο蟮谋举|(zhì)就是將現(xiàn)實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現(xiàn)細節(jié)的一種封裝;我們編寫一個類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝??梢哉f,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口。

3、多態(tài)性:多態(tài)性是指允許不同子類型的對象對同一消息作出不同的響應(yīng)。簡單的說就是用同樣的對象引用調(diào)用同樣的方法但是做了不同的事情。多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性。如果將對象的方法視為對象向外界提供的服務(wù),那么運行時的多態(tài)性可以解釋為:當 A 系統(tǒng)訪問 B 系統(tǒng)提供的服務(wù)時,B 系統(tǒng)有多種提供服務(wù)的方式, 但一切對 A 系統(tǒng)來說都是透明的。方法重載(overload)實現(xiàn)的是編譯時的多態(tài)性(也稱為前綁定),而方法重寫實現(xiàn)的是運行時的多態(tài)性(也稱為后綁定)。運行時的多態(tài)是面向?qū)ο笞罹璧臇|西,要實現(xiàn)多態(tài)需要做兩件事:

(1)方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法)

(2)對象造型(用父類型引用引用子類型對象,這樣同樣的引用調(diào)用同樣的方法就會根據(jù)子類對象的不同而表現(xiàn)出不同的行為)。

4、抽象:抽象是將一類對象的共同特征總結(jié)出來構(gòu)造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。抽象只關(guān)注對象有哪些屬性和行為,并不關(guān)注這些行為的細節(jié)是什么。

注意:默認情況下面向?qū)ο笥?3 大特性,封裝、繼承、多態(tài),如果面試官問讓說出 4 大特性,那么我們就把抽象加上去。

問題二:訪問權(quán)限修飾符 public、private、protected, 以及不寫(默認)時的區(qū)別。

該題目比較簡單,不同的權(quán)限修飾符的區(qū)別見下表。

Java面向?qū)ο蟮念}目有哪些

問題三:如何理解 clone 對象

1、為什么要用 clone?

在實際編程過程中,我們常常要遇到這種情況:有一個對象 A,在某一時刻 A 中已經(jīng)包含了一些有效值,此時可能會需要一個和 A 完全相同新對象 B,并且此后對 B 任何改動都不會影響到 A 中的值,也就是說,A 與 B 是兩個獨立的對象,但 B 的初始值是由 A 對象確定的。在 Java 語言中,用簡單的賦值語句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現(xiàn) clone()方法是其中最簡單,也是最高效的手段。

2、new 一個對象的過程和 clone 一個對象的過程區(qū)別

new 操作符的本意是分配內(nèi)存。程序執(zhí)行到 new 操作符時,首先去看 new 操作符后面的類型,因為知道了類型, 才能知道要分配多大的內(nèi)存空間。分配完內(nèi)存之后,再調(diào)用構(gòu)造函數(shù),填充對象的各個域,這一步叫做對象的初始化,構(gòu)造方法返回后,一個對象創(chuàng)建完畢,可以把他的引用(地址)發(fā)布到外部,在外部就可以使用這個引用操縱這個對象。

clone 在第一步是和 new 相似的,都是分配內(nèi)存,調(diào)用 clone 方法時,分配的內(nèi)存和原對象(即調(diào)用 clone 方法的對象)相同,然后再使用原對象中對應(yīng)的各個域,填充新對象的域,填充完成之后,clone 方法返回,一個新的相同的對象被創(chuàng)建,同樣可以把這個新對象的引用發(fā)布到外部。

3、clone 對象的使用

(1)復制對象和復制引用的區(qū)別

Person p = new Person(23, "zhang");

Person p1 = p;

System.out.println(p);

System.out.println(p1);

當 Person p1 = p;執(zhí)行之后, 是創(chuàng)建了一個新的對象嗎? 首先看打印結(jié)果:

com.itheima.Person@2f9ee1ac

com.itheima.Person@2f9ee1ac

可以看出,打印的地址值是相同的,既然地址都是相同的,那么肯定是同一個對象。p 和 p1 只是引用而已,他們都指向了一個相同的對象 Person(23, “zhang”) 。 可以把這種現(xiàn)象叫做引用的復制。上面代碼執(zhí)行完成之后, 內(nèi)存中的情景如下圖所示:

Java面向?qū)ο蟮念}目有哪些

而下面的代碼是真真正正的克隆了一個對象。

Person p = new Person(23, "zhang");

Person p1 = (Person) p.clone();

System.out.println(p);

System.out.println(p1);

從打印結(jié)果可以看出,兩個對象的地址是不同的,也就是說創(chuàng)建了新的對象, 而不是把原對象的地址賦給了一個新的引用變量:

com.itheima.Person@2f9ee1ac

com.itheima.Person@67f1fba0

以上代碼執(zhí)行完成后, 內(nèi)存中的情景如下圖所示:

Java面向?qū)ο蟮念}目有哪些

到此,關(guān)于“Java面向?qū)ο蟮念}目有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網(wǎng)站題目:Java面向?qū)ο蟮念}目有哪些-創(chuàng)新互聯(lián)
本文鏈接:http://www.muchs.cn/article42/pcshc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT網(wǎng)站設(shè)計、網(wǎng)站收錄、企業(yè)網(wǎng)站制作外貿(mào)網(wǎng)站建設(shè)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站