您好,登錄后才能下訂單哦!
我們?cè)诔鯇W(xué)Java語(yǔ)言的時(shí)候,老師給我們講的第一個(gè)例子往往是用記事本編寫(xiě)打印“Hello World”的程序。當(dāng)寫(xiě)完程序后,老師一般都會(huì)要求我們把源文件的名稱命名為與類名相同,比如,類的名稱叫A,那么源文件的名稱也叫A。很多同學(xué)按老師的要求做了,也成功的運(yùn)行出了“Hello World”。沒(méi)按老師要求做的,可能連編譯都無(wú)法成功。于是很多初學(xué)者都認(rèn)為,Java程序的源文件名必須與類名相同,那么真實(shí)情況到底是不是這樣呢?我們慢慢道來(lái)。
Java程序的源文件名與類名之間存在如下關(guān)系:
根據(jù)以上規(guī)則,我們就明白了:當(dāng)年老師讓我們把源文件命名為與類名相同的名稱,其實(shí)是因?yàn)槲覀兯x的那個(gè)類前面有個(gè)public關(guān)鍵字。接下來(lái)我們深入研究一下幾種特殊情況:
源文件中如果沒(méi)有public所修飾的類,源文件該如何命名
這個(gè)問(wèn)題其實(shí)很簡(jiǎn)單,如果源文件中沒(méi)有任何一個(gè)類被public關(guān)鍵字所修飾,那么我們可以用任意名稱來(lái)命名這個(gè)源文件,只要源文件的名稱符合命名規(guī)范就可以了。
一個(gè)源文件中如果定義了多個(gè)類,編譯之后會(huì)形成幾個(gè).class文件
大家看下圖,我們?cè)谝粋€(gè)源文件當(dāng)中定義了3個(gè)類,那么編譯之后會(huì)產(chǎn)生多少個(gè).class文件呢?經(jīng)過(guò)編譯之后,一共產(chǎn)生了3個(gè).class文件。并且這3個(gè).class文件的名稱恰好與源文件中3個(gè)類的類名相對(duì)應(yīng)。
通過(guò)這個(gè)實(shí)驗(yàn)我們就可以得到一個(gè)結(jié)論:源文件與編譯后的字節(jié)碼文件的名稱和數(shù)量其實(shí)沒(méi)有一一對(duì)應(yīng)關(guān)系,字節(jié)碼文件的名稱和數(shù)量其實(shí)是由源文件中類的名稱和數(shù)量決定的。
主方法必須定義在public類當(dāng)中嗎
有一種說(shuō)法,認(rèn)為主方法必須被定義到public類當(dāng)中才能運(yùn)行,其實(shí)這也是一種訛傳。大家看圖1,圖1當(dāng)中主方法并沒(méi)有被定義到public類當(dāng)中,但是我們照樣能通過(guò)相應(yīng)的命令執(zhí)行這個(gè)主方法
通過(guò)這篇小短文,我想初學(xué)Java的朋友能夠徹底弄清楚Java源文件名、字節(jié)碼文件名以及類名三者之間的關(guān)系了吧?
如果希望系統(tǒng)學(xué)習(xí)Java語(yǔ)言,可以點(diǎn)擊這里觀看我的視頻課程,有問(wèn)題也可以加入我的QQ群291839907一起討論!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。