首頁  >  文章  >  Java  >  java檔名為什麼要與類別名相同

java檔名為什麼要與類別名相同

(*-*)浩
(*-*)浩原創
2019-05-22 15:45:536638瀏覽

因為: Java是被解釋執行的。它在運行時並不是將所有的class檔案全都放到記憶體中。而是在遇到import的時候才去對應的檔案目錄找對應的class檔。 

java檔名為什麼要與類別名相同

對於一個public類,它是可以被專案中任何一個類別所引用的,只需在使用它前import一下它所對應的class檔案即可。將類別名稱與檔案名稱一一對應就可以方便虛擬機器 在對應的路徑(套件名稱)中找到對應的類別的資訊。如果不這麼做的話,就很難去找,開銷也會很大。

總結:

一個原始檔(.java)裡,沒有用public修飾的類別也可以跟檔名一致。

一個原始檔中可以存在類別名稱和檔案名稱不一致的情況,但不能用public修飾.

如果一個包內不存在public修飾的類別的話,那麼我想這個包我覺得沒有什麼意義,因為不能為」客戶程式設計師」提供介面,即使沒有用public修飾的類別裡面含有public修飾了的靜態方法,」客戶程式設計師」也沒有權限存取。

原始檔沒有用public修飾的類別主要是為public修飾的類別」支撐」。

最好不要在一個.java的來源檔案裡寫很多的類別.

main方法不一定要在public修飾了的類別下才能執行。但是main方法必須是public修飾的 

《Thinking in Java》解釋:

为Java创建一个源码文件的时候,它通常叫作一个“编辑单元”(有时也叫作“翻译单元”)。每个编译单元都必须有一个以.java结尾
的名字。而且在编译单元的内部,可以有一个公共(public)类,它必须拥有与文件相同的名字(包括大小写形式,但排除.java文件扩
展名)。如果不这样做,编译器就会报告出错。每个编译单元内都只能有一个 public类(同样地,否则编译器会报告出错)。那个编译
单元剩下的类(如果有的话)可在那个包外面的世界面前隐藏起来,因为它们并非“公共”的(非public),而且它们由用于主public
类的“支撑”类组成。编译一个.java文件时,我们会获得一个名字完全相同的输出文件;但对于.java文件中的每个类,它们都有一个.
class扩展名。因此,我们最终从少量的.java文件里有可能获得数量众多的.class文件。如以前用一种汇编语言写过程序,那么可能已
习惯编译器先分割出一种过渡形式(通常是一个.obj文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或
者与一个库封装到一起(生成一个库)。但那并不是Java的工作方式。一个有效的程序就是一系列.class文件,它们可以封装和压缩到
一个JAR文件里(使用Java1.1提供的jar工具)。Java解释器负责对这些文件的寻找、装载和解释(注释①)。 
①:Java并没有强制一定要使用解释器。一些固有代码的Java编译器可生成单独的可执行文件。

以上是java檔名為什麼要與類別名相同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn