Java中的访问权限控制

访问权限控制

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

  • 如果你把一个代码段放到了某个位置,等过一会儿回头再看时,有可能会发现有更好的方式去实现相同的功能。这正是重构的源动力之一,重构即重写代码,以使得它更可读、更易理解、并因此而更具可维护性。
  • 面向对象设计中需要考虑的一个基本问题:“如何把变动的事物与保持不变的事物区分开来。
  • Java提供了访问权限修饰词,以供类库开发人员向客户端程序员知名哪些是可用的,哪些是不可用的。访问权限控制的等级,从最大权限到最小权限依次为:publicprotected包访问权限(没有关键词)、private

6.1 包: 库单元

  • 当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名 .java,而且在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同。每个编译单元只能有一个public类,否则编译器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为它们不是public类,4而且它们主要用来为主public类提供支持。

6.2 Java访问权限修饰符

控制访问组件的可见度

修饰符本类同包其他包子类其他
private
(default)
protected
public

6.3 接口和实现

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

访问权限控制将权限的边界划在了数据类型的内部的两个重要原因:

  • 第一个原因是要设定客户端程序员可以使用和不可以使用的界限。
  • 第二个原因:将接口和具体实现进行分离。

6.4 类的访问权限

  1. 每个编译单元(文件)都只能有一个public类。
  2. public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。
  3. 虽然不是很常用,但编译单元内完全不带public类也是可能的。
  • 类既不可以是private的也不可以是protected的
  • 一个内部类可以使private或是protected的,但那是一个特例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值