回答一:
你主要的疑惑是弓叛,為什么類中的方法可以創(chuàng)建它本身璃弄。
類和方法的寫法都是一種聲明哥捕,所謂聲明牧抽,就是說是對(duì)行為的描述,而不是要真正執(zhí)行它遥赚。
說來說去就必須有一個(gè)不需要?jiǎng)?chuàng)建對(duì)象也能調(diào)用的方法扬舒。
java里面就是main方法(這個(gè)main方法只需要放到任意一個(gè)類中即可)。
當(dāng)你用java執(zhí)行這個(gè)類時(shí)凫佛,系統(tǒng)會(huì)尋找main方法作為入口執(zhí)行讲坎。
回答二:
- java是純面向?qū)ο蟮模械姆椒ǘ家獙懺陬惱锩胬⒀Γ琺ain函數(shù)也是晨炕。
- 但是main只是程序的入口,在那兒個(gè)類里面都無所謂毫炉,很多需要main函數(shù)做入口的項(xiàng)目都單獨(dú)寫個(gè)類放main函數(shù)
- main是靜態(tài)函數(shù)府瞄,你在其它靜態(tài)函數(shù)里創(chuàng)建一個(gè)這個(gè)類的對(duì)象也是可以的,靜態(tài)函數(shù)是類的方法,不是對(duì)象的方法遵馆。
- 建議你看看內(nèi)存機(jī)制鲸郊。
回答三:
main方法作為java程序的入口方法。它同時(shí)被static修飾是一個(gè)靜態(tài)的方法货邓!
靜態(tài)的方法就是不需要將類實(shí)例化就可以直接使用類名調(diào)用到方法或者屬性秆撮。而非靜態(tài)的就需要將此類實(shí)例化之后才能夠調(diào)用到方法或者屬性。也就是靜態(tài)方法的執(zhí)行不依賴于實(shí)例對(duì)象
它的執(zhí)行過程是:當(dāng)程序載入時(shí)换况,讀取了該java文件职辨,將靜態(tài)方法讀到到了內(nèi)存中的靜態(tài)方法保存區(qū)域,將classA讀到了類的區(qū)域戈二,注意:這時(shí)候的classA并沒有創(chuàng)建實(shí)例對(duì)象舒裤,內(nèi)存中只是有了創(chuàng)建classA的機(jī)器了。接下來main方法作為程序的入口方法被執(zhí)行(這是只有方法沒有實(shí)例對(duì)象)觉吭,方法中調(diào)用了classA的機(jī)器生產(chǎn)了一個(gè)A對(duì)象腾供,再將A對(duì)象裝載到內(nèi)存中。
摘自:https://zhidao.baidu.com/question/538441438.html?sort=9&rn=5&pn=0#wgt-answers