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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99视频在线看 | 91精品国产91久久久久 | 国产精品视频播放 | 四虎影视884aa·com | 亚洲波多野结衣日韩在线 | 小早川怜子在线播放精品 | 99热久久这里只有精品6国产网 | 高清在线免费 | 日本人黄色 | 五月激情丁香婷婷综合第九 | 国产精品亚欧美一区二区三区 | 海绵宝宝第二季全集免费观看 | 久久国产主播福利在线 | 免费看片aⅴ免费大片 | 人人做人人爽人人爱 | 欧美视频网址 | 国产精品亚洲午夜一区二区三区 | 91久久青青草原线免费 | free性俄罗斯护士 | 精品欧美男同同性videos | 久久精品视频在线看 | 亚洲日本va中文字幕 | 日本不卡1卡2卡三卡网站二百 | 午夜在线观看视频 | 天堂网在线.www天堂在线视频 | 亚洲另类中文字幕 | 成人在线免费观看视频 | 国产精品99久久免费观看 | 亚洲网红精品大秀在线观看 | 国产一级免费片 | 久久青草费线频观看国产 | 亚洲九九九| 国产午夜免费秋霞影院 | 饭冈加奈子乳喷cead144 | 晚上禁用的十大黄台视频 | 地址二地址三2021变更 | 成人午夜毛片 | 好男人在线观看hd中字 | 国产欧美在线播放 | 四虎传媒| 亚洲精品人成网在线播放影院 |