第六章 访问权限
访问权限从最大到最小:public、protected、包访问权限、private
编译单元即java源代码,是 .java文件,最多只能有一个public类,可能没有public类。类名同文件名同名。编译一个.java文件,会输出文件中每个类名同名的.class文件。
类库是一组类文件。每个文件都有一个public类以及任意个非public类。每个文件都有一个构件,若希望这些构件从属于同一个群组,则用关键字package。package关键字应是文件注释外第一句代码。使用package access语句来声明该编译单元是名为access类库的一部分。
package和import关键字是将单一的全局名字空间分割开,从而不会出现名称冲突问题。
包访问权限:默认访问权限,无关键字:爆种所有类对包内成员都有访问权限,但对包外的类来说是private。
取得包访问权限的某成员访问权的途径:
1、使该成员变为public; 2、不加访问权限修饰词将其他类置于同一个包内并经成员赋予包访问权; 3、继承 4、get/set方法。
import不能改变访问权限。
private:除包含该成员的类外,其他类都无法访问该成员。
访问级别 | 同类 | 同包 | 不同包子类 | 不同包 |
public |
yes
| yes | yes | yes |
protected | yes | yes | yes | no |
default | yes | yes | no | no |
private | yes | no | no | no |
把数据和方法包装进类,以及访问权限的控制(也被称为具体实现的隐藏)称为封装
类不可以是private或protected(内部类除外)。如果不希望别人对类拥有访问权,对可以将所有构造器设为private。