Thinking in Java - 学习笔记 - (六)访问权限控制

Java编程思想 - 第六章 - 访问权限控制

访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。

面向对象设计中需要考虑的基本问题:“如何把变动的事物与保持不变的事物区分开来”。这对类库(library)而言尤为重要。

为了解决这一问题,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。访问控制的等级,从最大到最小权限依次为:publicprotected、包访问权限(没有关键词)和private

包:库单元

包内包含一组类,它们在单一的名字空间之下被组织在了一起。

Java访问权限修饰词

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

  1. 使该成员成为public

  2. 不加访问权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。

  3. 继承,可访问publicprotected成员(但访问private成员却不行)。

  4. 提供访问器(accessor)和变异器(mutator)方法(也称作get/set方法)。

private的使用很重要,在多线程环境下更是如此。

如果默认构造器是唯一定义的构造器,并且它是private的,那么它将阻碍对此类的继承。

扫描二维码关注公众号,回复: 100640 查看本文章

接口和实现

访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是封装

总结

控制对成员的访问权限有两个原因:

  • 为了使用户不要碰触那些他们不该碰触的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。
  • 最重要的原因,是为了让类库设计者可以更改类的内部工作方式,而不必担心这样会对客户端程序员产生重大的影响。

猜你喜欢

转载自blog.csdn.net/WANG_Chaunwang/article/details/79947951