《Thinkinginjava》第6章-访问权限控制
2016-06-20 21:42
344 查看
为什么会有访问控制权限
面向对象的设计中需要考虑一个问题:“如何把变动的事物与保持不变的事物区分开来”。当一个类库被设计出来提供给别人使用时,类库的设计者们要保证当类库发布新版本时,类库的消费者(程序猿)们不需要改写原有的代码,设计者们必须在不影响客户端代码的情况下进行修改和改进。
然而与此同时,新的问题出现了:设计者们如何知道他们改哪些代码而不影响码农们的客户端代码呢,因为他们并不知道自己设计的类库中哪些代码被客户端使用而哪些没有。
要想解决以上的问题,办法只有一个:大牛们在设计类库时,他们向客户端程序猿们指明了哪些是可用的,哪些是不可用的,这样,设计者们在更新类库时,就只会修改那些客户端代码不可用的部分,所以程序猿们升级类库之后就不用修改代码了。
访问权限有哪些
访问权限控制的等级,从大到小依次为:public→
protected→
包访问权限(通常称为default,无关键字)→
private
四种访问控制权限之间的异同如下表所示:
权限 | 当前类 | 同包类 | 子类 | 其他类 |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | |
default | √ | √ | ||
private | √ |
相关文章推荐
- 关于SpringMVC使用@RequestBody注解接受json格式数据报415错误
- Java(线性代数--逆序数的求算)
- JDK环境变量的配置
- Ubuntu安装JDK
- Struts2输入校验field-validator type 可取得值
- Java进阶(三)多线程开发关键技术
- Java入门需掌握的30个基本概念
- Java并发编程总结4——ConcurrentHashMap在jdk1.8中的改进
- Java调用动态链接库-扩展
- java内存管理
- Java并发编程总结4——ConcurrentHashMap在jdk1.8中的改进
- Caused by: java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor
- java内存管理
- leetcode: 5. Longest Palindromic Substring (java)
- java内部类知识点的概要总结
- openNLP在eclipse中配置和使用
- openNLP在eclipse中配置和使用
- 【一】Java 入门
- 对部分Java名词的总结
- eclipse安装ADT插件重启后不显示Android SDK Manager和Android Virtual Device Manager图标的一种解决办法