java靜態(tài)方法與靜態(tài)變量
Java靜態(tài)方法與靜態(tài)變量:在Java編程中使用static關(guān)鍵字可以定義靜態(tài)變量和靜態(tài)方法。其靜態(tài)變量不僅可以通過(guò)對(duì)象訪(fǎng)問(wèn),還可以直接通過(guò)類(lèi)的名稱(chēng)訪(fǎng)問(wèn)。另一方面,實(shí)例變量只能通過(guò)一個(gè)對(duì)象來(lái)訪(fǎng)問(wèn),而不能使用類(lèi)的名稱(chēng)。
1. 靜態(tài)變量
成員變量分為實(shí)例變量和靜態(tài)變量。當(dāng)一個(gè)Java程序被執(zhí)行時(shí),類(lèi)的字節(jié)碼文件被加載到內(nèi)存中,類(lèi)中的靜態(tài)變量也被分配到相應(yīng)的內(nèi)存空間。
如果該類(lèi)創(chuàng)建了對(duì)象,那么就會(huì)為不同對(duì)象的實(shí)例變量分配不同的內(nèi)存空間。然而,靜態(tài)變量不再被重新分配到內(nèi)存中,而是由所有對(duì)象共享。
也就是說(shuō),靜態(tài)變量是一個(gè)與類(lèi)所創(chuàng)建的所有對(duì)象相關(guān)的變量,改變其中一個(gè)對(duì)象的這個(gè)靜態(tài)變量會(huì)影響其他對(duì)象的這個(gè)靜態(tài)變量。
靜態(tài)變量不僅可以通過(guò)對(duì)象訪(fǎng)問(wèn),還可以直接通過(guò)類(lèi)的名稱(chēng)訪(fǎng)問(wèn)。另一方面,實(shí)例變量只能通過(guò)一個(gè)對(duì)象來(lái)訪(fǎng)問(wèn),而不能使用類(lèi)的名稱(chēng)。
2. 靜態(tài)方法
被聲明為靜態(tài)方法的方法需要在其返回類(lèi)型前添加關(guān)鍵字static。即使類(lèi)沒(méi)有實(shí)例化任何對(duì)象,靜態(tài)方法也可以執(zhí)行,而實(shí)例方法只能由與之相關(guān)的特定對(duì)象執(zhí)行,如果沒(méi)有對(duì)象存在,實(shí)例方法就不能執(zhí)行。
需要注意的是:
(1)實(shí)例方法能夠?qū)?shí)例變量和靜態(tài)變量進(jìn)行操作。
(2)靜態(tài)方法只能對(duì)靜態(tài)變量進(jìn)行操作。
(3)構(gòu)造方法是特殊的方法,不能被聲明為靜態(tài)方法。
(4)靜態(tài)變量一般用于保存對(duì)象的共用變量。
(5)靜態(tài)方法一般用于提供公共方法,以避免創(chuàng)建對(duì)象。
3.main()方法
main()方法必須是一個(gè)靜態(tài)方法,這樣就可以通過(guò)類(lèi)名來(lái)引用它來(lái)啟動(dòng)程序,而不用實(shí)例化main()方法所在的類(lèi)。
因?yàn)閙ain()方法是一個(gè)靜態(tài)方法,它可以訪(fǎng)問(wèn)這個(gè)類(lèi)的靜態(tài)變量和靜態(tài)方法,但不能訪(fǎng)問(wèn)這個(gè)類(lèi)的實(shí)例變量和實(shí)例方法。
想了解更多相關(guān)資訊請(qǐng)關(guān)注java培訓(xùn)頻道-查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線(xiàn)咨詢(xún)也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注賦能網(wǎng)了解更多:4008-569-579
本文鏈接:
本文章“長(zhǎng)沙學(xué)Java靜態(tài)方法與靜態(tài)變量”已幫助 79 人
免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線(xiàn):4008-569-579