1、在一个.java文件中可以有多个同级类(和public一样的位置,注意不是内部类).其修饰符只可以public/abstract/final/和无修饰符,不能是其他的protected/private等修饰符。所以protected类虽然可以在包内访问,但是也必须定义在另外类里面,protected主要是保护子类访问,因此个人觉得其他类就尽量不要使用,便于规范;
不使用任何修饰符声明的属性和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。
- public:跨包可访问
- 无修饰符:包内可访问
2、public修饰的只能有一个,且必须要与文件名相同;若没有public的则可与文件名不同。注意不是内部类
3、该文件同级的类之间可以互相调用,但是除了public的类,其他不能够在其他文件调用。
4、在一个.java文件中由类/Enum/接口/Anontation其中至少一个类型组成。单独一个方法/变量不能独自存在与文件中,所以公用方法的封装也是做成类方法。原因是java是类加载机制,需要编译一个java文件成多个class文件,当类来使用。java文件的命名也是按照类名命名。也说明java面向对象的思想体现非常充分,不想C/C++可以单独一个方法一个文件。详细见:http://www.weixueyuan.net/view/6311.html
5、编译一个java文件会生成多个class文件
假设Test.java文件中:
public class Test{}
class Test2{}
abstract class Test3{}
final class Test6{}
编译后:Test.class Test2.class Test3.class Test6.class
编译后:Test.class Test2.class Test3.class Test6.class