一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女被视频| 亚洲精品卡1卡二卡3卡四卡 | 农村妇女野外牲交一级毛片 | 国内精品久久久久小说网 | 97影院手机版 | 亚洲国产成人精品无码区APP | 8天堂资源在线官网 | nxgx欧美 | 国产精品一区二区久久 | 青青青在线视频播放 | 国产成人亚洲精品91专区高清 | 性色AV一区二区三区V视界影院 | 精品午夜寂寞影院在线观看 | 国产成人精品视频一区二区不卡 | 日韩亚洲一区中文字幕在线 | se综合| 国产亚洲欧美在线中文bt天堂网 | 麻豆网| 91果冻制片厂天美传媒 | 丰满大屁股美女一级毛片 | 99热在线免费观看 | 四虎影视免费观看免费观看 | 免费精品在线 | 性xxxx中国老妇506070 | 成人先锋 | 深夜福利一区 | 国产高清视频网站 | 91精品国产综合久久精品 | nxgx在线观看国产中文 | 免费理伦片在线观看全网站 | leslessexvideos日本 | 精品久久香蕉国产线看观看亚洲 | 国产亚洲精品高清在线 | 国产精品色拉拉免费看 | 九九久久精品 | 人人爱操 | 久久免费看少妇高潮A片特爽 | 香蕉免费一区二区三区在线观看 | 国产成+人+综合+亚洲欧美丁香花 | 调教处男 | 日韩视频在线免费观看 |