Java基礎(chǔ)學(xué)習(xí):java類方法定義

Java基礎(chǔ)學(xué)習(xí):java類方法定義

長(zhǎng)沙中公優(yōu)就業(yè)      2022-04-15 09:21:02     8

Java基礎(chǔ)學(xué)習(xí):java類方法定義,Java中類的方法分為類方法(用static修飾,也叫靜態(tài)方法)和實(shí)例方法(沒有用static修飾,也叫非靜態(tài)方法),這兩種方法之間有什

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

    Java中類的方法分為類方法(用static修飾,也叫靜態(tài)方法)和實(shí)例方法(沒有用static修飾,也叫非靜態(tài)方法),這兩種方法之間有什么區(qū)別呢?

    一.實(shí)例方法

    當(dāng)類的字節(jié)碼文件加載到內(nèi)存中時(shí),類的實(shí)例方法并沒有被分配入口地址,只有當(dāng)該類的對(duì)象創(chuàng)建以后,實(shí)例方法才分配了入口地址。從而實(shí)例方法可以被類創(chuàng)建的所有對(duì)象調(diào)用,還有一點(diǎn)需要注意,當(dāng)我們創(chuàng)建第一個(gè)類的對(duì)象時(shí),實(shí)例方法的入口地址會(huì)完成分配,當(dāng)后續(xù)在創(chuàng)建對(duì)象時(shí),不會(huì)再分配新的入口地址,也可以說,該類的所有對(duì)象共享實(shí)例方法的入口地址,當(dāng)該類的所有對(duì)象被銷毀,入口地址才會(huì)消失。

    二.類方法

    當(dāng)類的字節(jié)碼文件加載到內(nèi)存,類方法的入口地址就會(huì)分配完成,所以類方法不僅可以被該類的對(duì)象調(diào)用,也可以直接通過類名完成調(diào)用。類方法的入口地址只有程序退出時(shí)消失。

    因?yàn)轭惙椒ǖ娜肟诘刂返姆峙湟缬趯?shí)例方法的入口地址分配時(shí)間,所有在定義類方法和實(shí)例方法是有以下規(guī)則需要遵循:

    1.在類方法中不能引用實(shí)例變量

    實(shí)例變量的定義類似實(shí)例方法,沒有用static修飾的變量,實(shí)例變量的創(chuàng)建與實(shí)例方法的創(chuàng)建相同,也是在類的對(duì)象創(chuàng)建時(shí)完成,所以在類方法中是不能引用實(shí)例變量的,因?yàn)檫@個(gè)時(shí)候?qū)嵗兞窟€沒有分配內(nèi)存地址。

    2.在類方法中不能使用super和this關(guān)鍵字

    這是因?yàn)閟uper和this都指向的是父類和本類的對(duì)象,而在類方法中調(diào)用的時(shí)候,這些指代的對(duì)象有可能都還沒有創(chuàng)建。

    3.類方法中不能調(diào)用實(shí)例方法

    原因同1。

    與類方法相比,實(shí)例方法的定義就沒有什么限制了:

    【1】實(shí)例方法可以引用類變量和實(shí)例變量

    【2】實(shí)例方法可以使用super和this關(guān)鍵字

    【3】實(shí)例方法中可以調(diào)用類方法

 以上就是長(zhǎng)沙中公優(yōu)就業(yè)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):java類方法定義”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

Java基礎(chǔ)學(xué)習(xí)

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。