一个java源文件中是否可以包括多个类(不是内部类)?有什么限制?
一个java源文件中可以有多个类,但只能有一个public的类,并且public的类名必须与java源文件名相一致。
为什么Java源文件只能有一个public类?当java源文件不存在public类时,会出现什么情况?
1. 每个编译单元都只能有一个public类,这表示,每个编译单元都有一个单一的公共接口,用public来表现。该接口可以按要求包含众多的支持包访问权限的类。如果在某个编译单元内有一个以上的public类,编译单元就会给出错误信息(不能通过编译)。
2.public类的名称必须完全与含有编译单元的文件名相同,包含大小写。如果不匹配,同样将得到编译错误。
3.编译单元完全不带public类也是可以的,在这种情况下,可以随意对文件命名。