Java编程思想第四版读书笔记——第六章 访问权限控制

时间:2022-05-31 15:18:24

罪过罪过,懒了这么多天。。因为之前是有C和Java基础的,所以笔记做的比较粗糙,有的部分自己回头看都还得想一会,以后尽量做仔细一点吧。


第六章  访问权限控制


1 包:库单元


Java代码文件,也可以成为编译单元(有时也成为转译单元)。

编译单元内有一个public类,该类名称必须与文件名称相同。

每个编译单元只能有一个public类。

Java包命名规则是必须全是小写字母。

package和import将单一的全局名字空间分开,使得不会出现名称冲突问题。

想要使用某类,需要指定全名或者使用import关键字,import可以使用该包中的public类。

使用静态导入 import static可以在系统中使用包中静态的方法。



2 Java访问权限修饰词


包访问权限:

不加修饰词,就是包访问权限。包内所有其他类对那个成员都有访问权限。对包外类都是private。

取得某成员访问权限的唯一途径是:

1、该成员是public

2、不加权限修饰词并将其他类放在同一个包内,包内其它成员可访问此成员。

3、继承而来的类既可以访问public又可以访问protected。

4、通过访问器和变异器方法(get/set方法),以读取和改变值。


public:接口访问权限:

任何人都可以访问它。不同包里的都可以。
默认包: 对于隶属于相同目录却没有给自己设定任何包名称的文件,Java默认其为该目录的默认包里,这样它们之间的包访问权限可以使它们互相访问。

private:私有

除了包含该类成员的类(这个private成员在的类)之外,任何其他类都无法访问这个成员。 好处: 1、可以控制如何创建该对象,别人必须使用特定构造器创建 2、对于辅助方法,可以指定其为private,防止误用它

protected:继承访问权限

protected成员除了只能被派生类使用外,还提供包访问权限。


3 接口和实现

访问权限的控制常被称为具体实现的隐藏,这被便是“封装”。


4 类的访问权限

1、每个编译单元(文件)只能有一个public类

2、public类的名称必须与文件名相匹配,包括大小写。


类只能是public或者包访问权限的,除了内部类



5 总结

控制对成员的访问有两个原因: 1、是用户不要去触碰不该触碰的部分 2、让库类设计者可以改变类内部工作的方式,而不必担心对客户端程序员产生重大影响。