您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)java文件名與類名相同的原因是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
因?yàn)椋?Java是被解釋執(zhí)行的。它在運(yùn)行時(shí)并不是將所有的class文件全都放到內(nèi)存中。而是在遇到import的時(shí)候才去相應(yīng)的文件目錄找相應(yīng)的class文件。
對(duì)于一個(gè)public類,它是可以被項(xiàng)目中任何一個(gè)類所引用的,只需在使用它前import一下它所對(duì)應(yīng)的class文件即可。將類名與文件名一一對(duì)應(yīng)就可以方便虛擬機(jī) 在相應(yīng)的路徑(包名)中找到相應(yīng)的類的信息。如果不這么做的話,就很難去找,而且開(kāi)銷也會(huì)很大。
總結(jié):
一個(gè)源文件(.java)里,沒(méi)有用public修飾的類也可以和文件名一致。
一個(gè)源文件中可以存在類名和文件名不一致的情況,但不能用public修飾.
如果一個(gè)包內(nèi)不存在public修飾的類的話,那么我想這個(gè)包我覺(jué)得沒(méi)有什么意義,因?yàn)椴荒転椤笨蛻舫绦騿T”提供接口,即使沒(méi)有用public修飾的類里面含有public修飾了的靜態(tài)方法,”客戶程序員”也沒(méi)有權(quán)限訪問(wèn)。
源文件沒(méi)有用public修飾的類主要是為public修飾的類”支撐”。
最好不要在一個(gè).java的源文件里寫(xiě)很多的類.
main方法不一定要在public修飾了的類下才能執(zhí)行。但是main方法必須是public修飾的
《Thinking in Java》解釋:
為Java創(chuàng)建一個(gè)源碼文件的時(shí)候,它通常叫作一個(gè)“編輯單元”(有時(shí)也叫作“翻譯單元”)。每個(gè)編譯單元都必須有一個(gè)以.java結(jié)尾 的名字。而且在編譯單元的內(nèi)部,可以有一個(gè)公共(public)類,它必須擁有與文件相同的名字(包括大小寫(xiě)形式,但排除.java文件擴(kuò) 展名)。如果不這樣做,編譯器就會(huì)報(bào)告出錯(cuò)。每個(gè)編譯單元內(nèi)都只能有一個(gè) public類(同樣地,否則編譯器會(huì)報(bào)告出錯(cuò))。那個(gè)編譯 單元剩下的類(如果有的話)可在那個(gè)包外面的世界面前隱藏起來(lái),因?yàn)樗鼈儾⒎恰肮病钡模ǚ莗ublic),而且它們由用于主public 類的“支撐”類組成。編譯一個(gè).java文件時(shí),我們會(huì)獲得一個(gè)名字完全相同的輸出文件;但對(duì)于.java文件中的每個(gè)類,它們都有一個(gè). class擴(kuò)展名。因此,我們最終從少量的.java文件里有可能獲得數(shù)量眾多的.class文件。如以前用一種匯編語(yǔ)言寫(xiě)過(guò)程序,那么可能已 習(xí)慣編譯器先分割出一種過(guò)渡形式(通常是一個(gè).obj文件),再用一個(gè)鏈接器將其與其他東西封裝到一起(生成一個(gè)可執(zhí)行文件),或 者與一個(gè)庫(kù)封裝到一起(生成一個(gè)庫(kù))。但那并不是Java的工作方式。一個(gè)有效的程序就是一系列.class文件,它們可以封裝和壓縮到 一個(gè)JAR文件里(使用Java1.1提供的jar工具)。Java解釋器負(fù)責(zé)對(duì)這些文件的尋找、裝載和解釋(注釋①)。 ①:Java并沒(méi)有強(qiáng)制一定要使用解釋器。一些固有代碼的Java編譯器可生成單獨(dú)的可執(zhí)行文件。
關(guān)于java文件名與類名相同的原因是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(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)容。