Java 访问权限控制(6)

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

1.包

  • 类库是一组类文件,其中每个文件都有一个public类,以及任意数量的非public类.
  • 每个文件都有一个构件,如果希望这些构建从属于同一个群组,就可以使用package关键字.
  • 如果使用package关键字,它必须是除注释以外的第一句程序代码.
  • packageimport:将单一的全局名字分隔开,解决命名冲突问题.
  • 一个包从未真正将被打包的东西包装成单一的文件,并且一个包可以由许多.class文件构成,一种合乎逻辑的做法是将特定包的所有.class文件都置于一个目录下(利用操作系统的层次化的文件结构来解决混乱问题(一种方式)).
  • Java解释器的运行过程:找到环境变量CLASSPATH,其目录作为查找.class文件的根目录;从根目录开始,解释器获取包的名称并将.替换成路径符;连接路径.
  • JDK2即使未设立CLASSPATH,也可以编译并运行基本的Java程序.
  • 同一程序中有冲突的名字,必须指定全名.
  • 静态导入 import static.
  • Java没有C的条件编译功能(不更改任何程序代码,就能切换开关并产生不同的行为).
  • 调试功能在开发过程中是开启的,而在发布的产品中式禁用的.

2.Java访问权限修饰词

  • 默认包:如果没有给类设定包名称,则该类隶属于该目录的默认包之中.
  • 包访问权限:默认访问权限(friendly).
  • public:接口访问权限.
  • private:除该类之外,其他任何类都无法访问(典型例子:构造器私有化).
  • protected:继承访问权限.
  • 获得某成员的访问权的途径:1.使该成员成为public;2.不加修饰符并置于同一个包中;3.使用继承;4.提供访问器(accessor)和变异器(mutator)方法(get/set方法).

3.接口和实现

  • 访问权限的控制常被成为是 具体实现的隐藏.
  • 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是 封装.其结果是一个同时带有特征和行为的数据类型.
  • 访问权限控制将权限的边界划在了数据类型的内部,原因:1.要设定客户端程序员可以使用和不可以使用的界限;2.将接口和具体实现进行分离.
  • 类浏览器:一种以非常有用的方式来查阅所有可用的类,并显示出可用成员的工具.===========

4.类的访问权限

  • 每个编译单元(文件)都只能有一个public类.
  • public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写.
  • 编译单元内完全不带public类也是可能的.
  • 类既不可以是private,也不可以是protected,只能是包访问权限或者public.
  • 如果不希望其他任何人对该类拥有访问权限,可以把所有的构造器都制定为private,从而阻止任何人创建该类的对象,但是有一个例外,就是在该类的static成员内部可以创建.
  • 如果一个包访问权限的类的某个static成员是public的话,则客户端程序员仍旧可以调用该static成员,尽管他们并不能生成该类的对象.

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值