Java的类名与⽂件名必须⼀致
1.Java保存的⽂件名必须与类名⼀致;
2.如果⽂件中只有⼀个类,⽂件名必须与类名⼀致;满月酒短信
汪涵的老婆照片
3.⼀个Java⽂件中只能有⼀个public类;
4.如果⽂件中不⽌⼀个类,⽂件名必须与public类名⼀致;
5.如果⽂件中不⽌⼀个类,⽽且没有public类,⽂件名可与任⼀类名⼀致。
当编写⼀个Java源代码⽂件时,此⽂件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有⼀个后缀为.java,⽽在编译单元内测可以有⼀个public类,该类的名称必须与⽂件名称相同(包括⼤⼩写,但不包括⽂件的后缀名.java)。每个编译单元只能有⼀个public类,否则编译器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是⽆法看见这些类的,这是因为他们不是public类,⽽且他们主要⽤来为主要 public类提供⽀持。
1. 每个编译单元(⽂件)都只能有⼀个public类。这表⽰,每个编译单元都有单⼀的公共接⼝,⽤public类来表现。该接⼝可以按要求包含众多的⽀持包访问权限的类。如果在某个编译单元内有⼀个以上的public类,编译器就会给出出错信息。
2. public类的名称必须完全与含有该编译单元的⽂件名相匹配,包括⼤⼩写。所以对于Widget⽽⾔,⽂件的名称必须是Widget.java,⽽不是widget.java或WIDGET.java。如果不匹配,同样将得到编译时错误。
3. 虽然不是很常⽤,但编译单元内完全不带public类也是可能的。这种情况下,可以随意对⽂件命名。(尽管随意命名会使得⼈们在阅读和维护代码时产⽣混淆。)
⼀个Java⽂件可以有多个类作为内部类/Adapter类/其它类,但是只能有⼀个public类,且类名必须和⽂件名⼀致。这是这类语⾔的⼀个不好的地⽅。
在现实情况中,经常有⼀些很⼩的类由⼏个类共同需要,因此⽆法作为内部类,⽽且接⼝关系必须设置为public,这样就导致了⼤量很⼩的.Java程序,每个都只有⼏百字节。
为什么桌面图标不见了
这类语⾔的另⼀个问题是⼀个类的所有实现的⽅法都必须包含在同⼀个⽂件中。在swing应⽤程序中,经常导致长达⼀两百K字节的源程序,⾏数达到三四千⾏,搞得JBuilder奇慢⽆⽐。
⼀个 .java ⽂件,可以有多个类,但是⽂件名只能有⼀个,⽤哪⼀个类名来充当⽂件名呢?其实⽂件名是⽆所谓的,因为将来⽤ javac 进⾏编译的时候,最终会⽣成多个 .class ⽂件,每⼀个类对应个 .class ⽂件。运⾏时只要运⾏对应的 .class ⽂件就可以了,这时 .java ⽂件就显得没什么⽤了( 运⾏时不需要 ),那还管它叫什么名字。
费翔
但是当你的类被 public 修饰时,此时⽂件名必须和该类保持⼀致(例如 public class A{} 只能放在 A.java ⽂件中,不然在⽤ javac 编译时会提⽰错误:类 A 是公共的,应在名为 A.java 的⽂件中声明)。也就是说在同⼀个 .java ⽂件中,不应该出现2个或2个以上的 public class 。
柯南电影
如果有⼀个public class类,就应该让⽂件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该⽂件随便起名字,甚⾄可以不和任意⼀个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的。
注:有很多初学者 ( 我也是 ) 可能会认为⽂件名应该也和 main ⽅法所在类有关系,其实不然。main ⽅法只是程序的⼀个⼊⼝,⽼师讲“⼀个程序只能有⼀个⼊⼝”,好象是在说只能有⼀个 main ⽅法,其实,只要你⾼兴,就可以在所有类⾥都写上 main ⽅法,给程序提供N多个⼊⼝,但是最后你运⾏程序的时候也只能从其中的⼀个⼊⼝进去,这就是 main 的作⽤( 程序⼊⼝ )。(这也就是为什么你会发现,程序员在做单元测试时,会往⾃⼰做的很多类⾥⾯添加 main ⽅法,因为他要为⾃⼰做的东西添加运⾏⼊⼝,从⽽能⽅便测试。)郑州服装批发