创建工程L1,并创建一个Java程序Login1.java

查看工程文件夹目录

  • src目录:存放Java源程序,如Login1.java
  • bin目录:存放编译后生成的二进制文件,如Login1.class

  

尝试类名与文件名不同。

  把类名Login1改为Login,编译器会提示错误信息

  

原因:根据编码规范,被public关键字修饰的类名须与文件名一致

解决报错的方式有两种

  • 将类名改为与文件名相同
  • 将public关键字去掉,去掉之后再次编译(能编译,但会控制台会报错),bin目录下的原Login1.class会被覆盖为Login.class

    

总结:为什么被public关键字修饰的类名必须与文件名一致

  每个编译单元(文件)只能有一个public类。可以理解成,每个编译单元只能有一个公开的接口,而这个接口就由其public类来表示。而没有被public修饰的类都是为了给被public修饰的类做支撑的。从软件架构设计和安全性设计上得出的结论。或者说是java的设计者们从这方面的考虑。这是一个规范,如果public修饰的类名不用和文件名一直,(假设先后写了两个一样的public类名)就会导致后面的public类名回覆盖前面的public类名。