类和包都是封装和容纳名称空间和变量及方法范围的方法。包就像盛装类和下级包的容器。类就像是数据和代码的容器。类是Java的最小的抽象单元。因为类和包的相互影响,Java将类成员的可见度分为四个种类:
· 相同包中的子类
· 相同包中的非子类
· 不同包中的子类
· 既不在相同包又不在相同子类中的类
类别 | Private成员 | 默认的成员 | Protected成员 | Public成员 |
同一类中可见 | 是 | 是 | 是 | 是 |
同一个包中对子类可见 | 否 | 是 | 是 | 是 |
同一个包中对非子类可见 | 否 | 是 | 是 | 是 |
不同包中对子类可见 | 否 | 否 | 是 | 是 |
不同的包中对非子类可见 | 否 | 否 | 否 | 是 |
表仅适用于类成员。一个类只可能有两个访问级别:默认的或是公共的。如果一个类声明成public,它可以被任何其他代码访问。如果该类默认访问控制符,它仅可以被相同包中的其他代码访问