創(chuàng)建工程L1,并創(chuàng)建一個Java程序Login1.java

查看工程文件夾目錄

  • src目錄:存放Java源程序,如Login1.java
  • bin目錄:存放編譯后生成的二進制文件,如Login1.class

  

嘗試類名與文件名不同。

  把類名Login1改為Login,編譯器會提示錯誤信息

  

原因:根據(jù)編碼規(guī)范,被public關(guān)鍵字修飾的類名須與文件名一致

解決報錯的方式有兩種

  • 將類名改為與文件名相同
  • 將public關(guān)鍵字去掉,去掉之后再次編譯(能編譯,但會控制臺會報錯),bin目錄下的原Login1.class會被覆蓋為Login.class

    

總結(jié):為什么被public關(guān)鍵字修飾的類名必須與文件名一致

  每個編譯單元(文件)只能有一個public類。可以理解成,每個編譯單元只能有一個公開的接口,而這個接口就由其public類來表示。而沒有被public修飾的類都是為了給被public修飾的類做支撐的。從軟件架構(gòu)設(shè)計和安全性設(shè)計上得出的結(jié)論。或者說是java的設(shè)計者們從這方面的考慮。這是一個規(guī)范,如果public修飾的類名不用和文件名一直,(假設(shè)先后寫了兩個一樣的public類名)就會導(dǎo)致后面的public類名回覆蓋前面的public類名。