参考《Java核心技术》
1.修饰类
默认访问权限(即包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。
public:用来修饰类的话,表示该类对其他所有的类都可见。
2.修饰类的字段和方法
private:如果一个类的方法或者字段被private修饰,那么这个类的方法或者字段只能在该类本身中被访问,在类外以及其他类中都不能显示地进行访问。
默认访问权限(即包访问权限):如果一个类的方法或字段被包访问权限修饰,也就意味着只能在同一个包中的其他类中显示地调用该类的方法或者字段,在不同包中的类中不能显示地调用该类的方法或变量。
protected:如果一个类的方法或者字段被protected修饰,对于同一个包的类,这个类的方法或字段是可以被访问的。对于不同包的类,只有继承于该类的类才可以访问到该类的方法或者字段。
public:被public修饰的方法或者字段,在任何地方都是可见的。
补充一下:
1)Java中的包与包之间没有任何关系(嵌套的包也同样适用)。引入包主要是为了防止类文件命名冲突以及方便进行代码组织和管理。
2)对于一个Java源代码文件,如果存在public类的话,只能有一个public类,且此时源代码文件的名称必须和public类的名称完全相同。另外,如果还存在其他类,这些类在包外是不可见的。如果源代码文件没有public类,则源代码文件的名称可以随意命名。