激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - 關于java關鍵字this和super的區別和理解

關于java關鍵字this和super的區別和理解

2021-08-02 10:46智歐巴 Java教程

這篇文章主要給大家介紹了關于java關鍵字this和super的區別和理解的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

this:

this理解為:當前對象 或 當前正在創建的對象

可以調用的結構:屬性、方法;構造器

this調用屬性、方法:

先了解一下形參:

形參的意義就是給屬性賦值,我們是要給同名的屬性賦值,這時候我們就把形參名和屬性的名字寫成一樣,這樣我們就知道我們傳入的形參就是要給我們同名的屬性去賦值的.

在類的方法中,我們可以使用"this.屬性"或"this.方法"的方式,調用當前對象屬性或方法。但是,

通常情況下,我們都擇省略"this."。特殊情況下,如果方法的形參和類的屬性同名時,我們必須顯式的使用"this.變量"的方式,表明此變量是屬性,而非形參。

舉例:我們聲明一個類叫鞋類,給它提供私有的屬性和get/set方法和構造器:

先來看沒有加this關鍵字的情況:

關于java關鍵字this和super的區別和理解

結果:

關于java關鍵字this和super的區別和理解

然后我們給鞋屬性加上this關鍵字:

關于java關鍵字this和super的區別和理解

控制臺輸出的就是我們給鞋設置的名字和編號:

關于java關鍵字this和super的區別和理解

在類的構造器中,我們可以使用"this.屬性"或"this.方法"的方式,調用當前正在創建的對象屬性或方法。但是,通常情況下,我們都擇省略"this."。特殊情況下,如果構造器的形參和類的屬性同名時,我們必須顯式的使用"this.變量"的方式,表明此變量是屬性,而非形參。

同樣的我們的構造器也是一樣:如果有參構造器沒有加給屬性加this關鍵字:控制臺輸出結果也和上面一樣

關于java關鍵字this和super的區別和理解

加上之后:

關于java關鍵字this和super的區別和理解

"this.方法"舉例:我們聲明兩個方法show和sale方法來舉例體會一下this的作用:代碼參照上面:

s.show();的結果:

關于java關鍵字this和super的區別和理解

this調用構造器:

① 我們在類的構造器中,可以顯式的使用"this(形參列表)"方式,調用本類中指定的其他構造器

② 構造器中不能通過"this(形參列表)“方式調用自己

③ 如果一個類中有n個構造器,則最多有 n - 1構造器中使用了"this(形參列表)”

④ 規定:"this(形參列表)“必須聲明在當前構造器的首行

⑤ 構造器內部,最多只能聲明一個"this(形參列表)”,用來調用其他的構造器

舉例:我們還是寫一個shoes類 提供私有屬性和get/set方法并提供三個構造器:

運行結果:

關于java關鍵字this和super的區別和理解

super:

super 關鍵字可以理解為:父類的

可以用來調用的結構:

屬性、方法、構造器

super調用屬性、方法:

我們可以在子類的方法或構造器中。通過使用"super.屬性"或"super.方法"的方式,顯式的調用父類中聲明的屬性或方法。但是,通常情況下,我們習慣省略"super."

①特殊情況:當子類和父類中定義了同名的屬性時,我們要想在子類中調用父類中聲明的屬性,則必須顯式的使用"super.屬性"的方式,表明調用的是父類中聲明的屬性。

② 特殊情況:當子類重寫了父類中的方法以后,我們想在子類的方法中調用父類中被重寫的方法時,則必須顯式的使用"super.方法"的方式,表明調用的是父類中被重寫的方法(也就是父類中原本的方法)。

舉例兩種特殊情況:在子類的方法中調用父類中同名的屬性和方法:

創建一個人類,一個學生類,學生類繼承人類,和一個測試類

輸出結果:

關于java關鍵字this和super的區別和理解

super調用構造器:

我們可以在子類的構造器中顯式的使用"super(形參列表)"的方式,調用父類中聲明的指定的構造器

注意:

"super(形參列表)"的使用,必須聲明在子類構造器的首行!我們在類的構造器中,針對于"this(形參列表)"或"super(形參列表)"只能二者取其一,不能同時出現在構造器的首行,沒顯式的聲明"this(形參列表)“或"super(形參列表)”,則默認調用的是父類中空參的構造器:super()在類的多個構造器中,至少一個類的構造器中使用了"super(形參列表)",調用父類中的構造器

舉例:還是用上面的例子,我們在人類和學生類中添加構造器:

在子類構造器2中調用父類已有的有參構造器:

然后測試:實例化學生類的對象并給屬性賦值,調learn方法:

輸出結果:

關于java關鍵字this和super的區別和理解

this與super的區別總結:

①代表事物不同

? this表示當前所屬函數的調用者對象

? super表示調用父類的結構(屬性,方法,構造器)

②使用前提不同

? super必須要有繼承關系才能使用

? this不需要繼承關系也能使用

③調用的構造器不同

? super:調用父類的構造器

? this:調用當前類(本類)的構造器

說明:

在棧空間中存放的是對象的引用也就是對象名指向堆空間中new的對象,在堆空間中子類和父類的屬性都會有,this和super都可以通過棧空間的引用指向堆空間來調用具體的屬性.

關于java關鍵字this和super的區別和理解

繼續加油~~沖沖沖! ! !

總結

到此這篇關于java關鍵字this和super的區別和理解的文章就介紹到這了,更多相關java關鍵字this和super區別內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_44015158/article/details/113406809

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 爽毛片| 高清国产午夜精品久久久久久 | 久久精品一级 | 中文在线观看视频 | 国产精品热 | 成人18免费观看 | 202z中文字幕第一页 | 亚洲日本韩国在线观看 | 高清国产在线 | 黄色伊人网站 | 欧美成人精品h版在线观看 在线2区 | 国产二区三区在线播放 | 九九热免费视频在线观看 | 依人在线视频 | 国产亚洲精品视频中文字幕 | 欧美日韩在线看片 | 国产精品91在线 | 久久精品女人天堂av | 成人宗合网 | 亚洲热线99精品视频 | 免费看日韩av | 成人青青草 | 国产精品久久久久久久久粉嫩 | 国产精品一区二区三区在线看 | 久久精品日产高清版的功能介绍 | 日本久久精 | 久久99亚洲精品久久99果 | 中国女警察一级毛片视频 | 91免费电影 | 久草成人在线 | 成人男男视频拍拍拍在线观看 | 国产精品视频专区 | 嫩呦国产一区二区三区av | 国产成人精品一区二区视频免费 | 叉逼视频| 日本网站一区 | 国产一区二区三区视频在线 | 毛片一区二区三区四区 | 国产在线1区 | 久久久久久久久久亚洲 | 免费看成年人网站 |