大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年Java面試題庫之面向對象

2020年Java面試題庫之面向對象

更新時間:2020-04-27 14:21:27 來源:動力節點 瀏覽2521次

    2020年Java面試題庫之面向對象,面向對象以數據為中心的開發方式,使用繼承來簡化開發過程,使用接口來規范對數據的操作,使用多態達到操作的靈活性??梢哉f面向對象是Java面試中的一個常見重要考點,因此本文為大家整理了面向對象的相關面試題,其中包括面向對象的特性、訪問權限修飾符和clone對象的理解

2020年Java面試題庫之面向對象

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

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

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

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

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

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

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

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

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

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

image.png

    問題三:如何理解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)復制對象和復制引用的區別

    Personp=newPerson(23,"zhang");

    Personp1=p;

    System.out.println(p);

    System.out.println(p1);

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

    com.itheima.Person@2f9ee1ac

    com.itheima.Person@2f9ee1ac

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

  2020年Java面試題庫之面向對象

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

    Personp=newPerson(23,"zhang");

    Personp1=(Person)p.clone();

    System.out.println(p);

    System.out.println(p1);

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

    com.itheima.Person@2f9ee1ac

    com.itheima.Person@67f1fba0

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

2020年Java面試題庫之面向對象

 以上就是動力節點java培訓機構的小編針對“2020年Java面試題庫之面向對象”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品第1页在线播放 | 中文字幕亚洲高清综合 | 91精选国产 | 国产亚洲精品美女久久久 | 久久最稳定资源站在线 | 四虎影视在线影院www | 成人国产一区二区 | 日韩欧美网站 | 亚洲欧美高清在线 | 婷婷综合在线观看丁香 | 亚洲综合激情视频 | 欧美video巨大粗暴18 | 亚洲欧美中文日韩在线 | 在线播放日本爽快片 | 夜夜网站| 九九免费观看全部免费视频 | 按摩一级片 | 色综合久久98天天综合 | 综合激情网站 | 日本中文一二区有码在线观看 | 日本中文在线观看 | 又黄又爽又成人免费视频 | 天天干天天干天天干天天 | 久久精品色 | 中文字幕久久精品 | 欧美高清一区二区 | 麻豆精品在线 | 日韩aaa| 99精品网站 | 手机在线中文字幕 | 国产玖玖在线观看 | 99热最新 | 日日摸日日 | 亚洲狠狠成人综合网 | 成人影院欧美大片免费看 | 26uuu精品一区二区 | 国产玖玖在线观看 | 99国产精品 | 日韩中文字幕在线观看视频 | 国内精品久久久久久 | 国产精品视频一区二区三区经 |