中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java面向對象的題目有哪些

發布時間:2021-12-22 16:32:47 來源:億速云 閱讀:132 作者:iii 欄目:編程語言

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

問題一、面向對象都有哪些特性以及你對這些特性的理解繼承

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

2、封裝:通常認為封裝是把數據和操作數據的方法綁定起來,對數據的訪問只能通過已定義的接口。面向對象的本質就是將現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫一個類就是對數據和數據操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口。

3、多態性:多態性是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調用同樣的方法但是做了不同的事情。多態性分為編譯時的多態性和運行時的多態性。如果將對象的方法視為對象向外界提供的服務,那么運行時的多態性可以解釋為:當 A 系統訪問 B 系統提供的服務時,B 系統有多種提供服務的方式, 但一切對 A 系統來說都是透明的。方法重載(overload)實現的是編譯時的多態性(也稱為前綁定),而方法重寫實現的是運行時的多態性(也稱為后綁定)。運行時的多態是面向對象最精髓的東西,要實現多態需要做兩件事:

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

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

4、抽象:抽象是將一類對象的共同特征總結出來構造類的過程,包括數據抽象和行為抽象兩方面。抽象只關注對象有哪些屬性和行為,并不關注這些行為的細節是什么。

注意:默認情況下面向對象有 3 大特性,封裝、繼承、多態,如果面試官問讓說出 4 大特性,那么我們就把抽象加上去。

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

該題目比較簡單,不同的權限修飾符的區別見下表。

Java面向對象的題目有哪些

問題三:如何理解 clone 對象

1、為什么要用 clone?

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

2、new 一個對象的過程和 clone 一個對象的過程區別

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

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

3、clone 對象的使用

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

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

Person p1 = p;

System.out.println(p);

System.out.println(p1);

當 Person p1 = p;執行之后, 是創建了一個新的對象嗎? 首先看打印結果:

com.itheima.Person@2f9ee1ac

com.itheima.Person@2f9ee1ac

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

Java面向對象的題目有哪些

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

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

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

System.out.println(p);

System.out.println(p1);

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

com.itheima.Person@2f9ee1ac

com.itheima.Person@67f1fba0

以上代碼執行完成后, 內存中的情景如下圖所示:

Java面向對象的題目有哪些

到此,關于“Java面向對象的題目有哪些”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仪征市| 潮安县| 福泉市| 达尔| 易门县| 永寿县| 浏阳市| 利辛县| 漯河市| 泸水县| 吴川市| 邢台县| 博爱县| 从江县| 浑源县| 柳州市| 昌宁县| 江川县| 民乐县| 宝坻区| 敖汉旗| 伊金霍洛旗| 自贡市| 三台县| 清丰县| 登封市| 永丰县| 缙云县| 杭锦后旗| 茂名市| 慈溪市| 呼和浩特市| 静安区| 辉南县| 盐边县| 包头市| 广元市| 桦甸市| 鹤山市| 叶城县| 集安市|