java中的常見(jiàn)關(guān)鍵字解析
本文主要針對(duì)Java常見(jiàn)關(guān)鍵字final,static,super,this進(jìn)行詳細(xì)辨析,以方便讀者參考查閱。具體如下:
一、final
1)修飾class(類):
表示此類不可被繼承了
2)修飾method(方法)
表示此方法方法不可被重寫(@override)了
3)修飾variable(變量)
表示此變量的值之后不可被改變了,常用于修飾不可變的常量
注:final字面意思是“最后”、“不可更改”的意思,結(jié)合意思記憶更方便。
二、static(第二、三法常用)
1)修飾class(類):
(不常用)只可用于修飾內(nèi)部類,普通類不允許這么聲明
2)修飾method(方法)
static方法是屬于類所有(對(duì)象間共享),而不是某個(gè)對(duì)象。不需創(chuàng)建對(duì)象,可以使用類名進(jìn)行調(diào)用此方法。
(程序執(zhí)行時(shí),類的字節(jié)碼被加載到內(nèi)存中,類沒(méi)有創(chuàng)建對(duì)象時(shí),類變量已經(jīng)被分配內(nèi)存,實(shí)例變量在創(chuàng)建具體對(duì)象時(shí)才分配內(nèi)存空間。)
3)修飾variable(變量)
類似于2),變量是類級(jí)別的共享,不需創(chuàng)建對(duì)象,但是變量的值的變化是整體性的,也就是說(shuō),對(duì)象A對(duì)某static變量的值進(jìn)行操作而改變了,那么對(duì)象B操作的就是改變后的static變量。
注:使用static修飾的代碼塊叫做靜態(tài)代碼塊,靜態(tài)代碼塊在JVM加載類的時(shí)候就先被執(zhí)行了,無(wú)論它們被放在什么位置,它們都是先被執(zhí)行,然后才是正常的代碼塊被執(zhí)行。可以有多個(gè)靜態(tài)代碼塊,它們會(huì)依次被JVM按照出現(xiàn)順序執(zhí)行,每個(gè)代碼塊只會(huì)被執(zhí)行一次。
靜態(tài)方法中不能有this和super關(guān)鍵字出現(xiàn)。
三、super:(指對(duì)父類的引用)
1)與Class相關(guān)(父類,也稱超類):
通過(guò)super(參數(shù)1,參數(shù)2,……,參數(shù)n),調(diào)用父類構(gòu)造函數(shù);
2)與Method(方法)相關(guān)
super.Methord(參數(shù)1,參數(shù)2,……,參數(shù)n)調(diào)用父類被重寫的方法;
3)與variable(變量)相關(guān)
super.variable,調(diào)用父類的變量
注:super必須用在子類構(gòu)造方法的第一行;
當(dāng)父類沒(méi)有不帶參數(shù)的構(gòu)造方法時(shí),子類需要使用super來(lái)顯式地調(diào)用父類的構(gòu)造方法,super指的是對(duì)父類的引用
四、this:(對(duì)當(dāng)前對(duì)象的引用)
1)Class相關(guān):
this(參數(shù)1,參數(shù)2,……,參數(shù)n),這是普通的構(gòu)造函數(shù),只能是構(gòu)造函數(shù)(其他)調(diào)用構(gòu)造函數(shù)(this),普通函數(shù)無(wú)法調(diào)用構(gòu)造函數(shù)。
2)Method(方法)相關(guān):
調(diào)用當(dāng)前對(duì)象的方法
3)Variable(變量)相關(guān):
調(diào)用當(dāng)前對(duì)象的變量
注:this();和super();顯式的調(diào)用構(gòu)造函數(shù)只能放在構(gòu)造第一行;
this.method..();super.method..();可以放在任何地方當(dāng)作一個(gè)普通的方法使;
構(gòu)造器和方法使用關(guān)鍵字this有很大的區(qū)別。方法引用this指向正在執(zhí)行方法的類的實(shí)例。靜態(tài)方法不能使用this關(guān)鍵字,因?yàn)殪o態(tài)方法不屬于類的實(shí)例,所以this也就沒(méi)有什么東西去指向。構(gòu)造器的this指向同一個(gè)類中,不同參數(shù)列表的另外一個(gè)構(gòu)造器。
相關(guān)文章
MyBatis Plus 實(shí)現(xiàn)多表分頁(yè)查詢功能的示例代碼
這篇文章主要介紹了MyBatis Plus 實(shí)現(xiàn)多表分頁(yè)查詢功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08基于EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出詳解
大數(shù)據(jù)的導(dǎo)入和導(dǎo)出,相信大家在日常的開發(fā)、面試中都會(huì)遇到。本文將為大家詳細(xì)介紹一下如何利用EasyExcel實(shí)現(xiàn)百萬(wàn)級(jí)數(shù)據(jù)導(dǎo)入導(dǎo)出,需要的可以參考一下2023-01-01springboot下添加全局異常處理和自定義異常處理的過(guò)程解析
在spring項(xiàng)目中,優(yōu)雅處理異常,好處是可以將系統(tǒng)產(chǎn)生的全部異常統(tǒng)一捕獲處理,自定義的異常也由全局異常來(lái)捕獲,如果涉及到validator參數(shù)校驗(yàn)器使用全局異常捕獲也是較為方便,這篇文章主要介紹了springboot下添加全局異常處理和自定義異常處理,需要的朋友可以參考下2023-12-12springboot?aop里的@Pointcut()的配置方式
這篇文章主要介紹了springboot?aop里的@Pointcut()的配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Spring Boot 2.4配置特定環(huán)境時(shí)spring: profiles提示被棄用的原
這篇文章主要介紹了Spring Boot 2.4配置特定環(huán)境時(shí)spring: profiles提示被棄用的原因,本文給大家分享詳細(xì)解決方案,需要的朋友可以參考下2023-04-04詳解SimpleDateFormat的線程安全問(wèn)題與解決方案
這篇文章主要介紹了SimpleDateFormat的線程安全問(wèn)題與解決方案,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03