public即公用,其修饰的成员,不论何时何地,只要他通过import引入之后都可以直接调用。
private私有,修饰成员,继承都无法调用保证了某些方面上的安全性。
protected受保护,非同包下无法使用,但是再使用继承之后可以跟public一样调用其修饰的成员,也可以完成一部分的代码逻辑实现上。
default默认,即当客户端程序员忘记或者是留空情况下,就算继承也无法去调用其修饰的成员。
补充一点:包访问权限可以有public跟default两种,default主要是为了自身调用而防止客户端程序员调用。
基于两种比较重要的原因(自我理解,不对麻烦提醒纠正):1、类库开发者可以在代码中编写自己的内部机制而不会被客户端程序员修改。2、而由1延伸出的接口和具体实现,客户端程序员只能发送信息也就是调用其接口方法,而无法修改接口的具体实现,在使用访问权限时,修改自身机制也不会影响用到此类接口实现的代码,也就保护了客户端代码也是保护类开发者代码。
书中的封装定义让我有了一种对封装更准确的定义:“把数据和方法包装到类中,并将具体实现隐藏称之为封装,而其结果就是同时带有特征和行为的数据类型”。