Java编程思想笔记——访问权限控制

重构既是重写代码,已使得它更可读、更易理解,并因此而更具可维护性(消费者(客户端程序员)又希望保持不变)。
如何把变动的事物与保持不变的事物区分开来?为什么控制访问权限?
1.使用用户不触碰不该触碰的部分。
2.更改内部实现,不影响客户端程序员

包:库单元

package,将构件捆绑到一个内聚的类库单元中。包内包含一组类,他们在单一的名字空间下被组织在一起。

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

代码组织

当编译一个.java文件时,在.java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中每个类的名称相同,只是多了一个后缀.class。因此,在编译少量.java文件之后,会得到大量的.class文件。Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR,使用Java的jar文档生成器)的.class文件。Java解释器负责这些文件的查找、装载和解释。
类库是一组类文件。每个文件有一个public类,以及任意数量的非public类。因此每个文件都有一个构件。如果希望这些构件(每个都有他们自己独立的.java和.class文件)从属于同一个群组,就可以使用关键字package。
Java包的命名规则全部使用小写字母。

创建独一无二的包名

一个包有许多.class文件构成,将特定包的所有.class文件都置于一个目录下,利用操作系统的层次化的文件结构来解决问题。
1.独一无二的名称:package的第一部分是类的创建者的反序列的Internet域名。Internet是独一无二的。
2.将package分解为你机器的一个目录,Java程序运行加载.class文件的时候,可以确定.class文件在目录上所处的位置。
Java解释器的运行过程:
首要,找出环境变量CLASSPATH,CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到的路径会与CLASSPATH中的各个不同项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。

冲突

两个含有相同名称类的类库以*形式同时导入,存在潜在的冲突。需要明确指出类的位置。
所以除非还要使用java.util中的其他东西,否则就没有必要写import java.util.*。

用import改变行为

Java没有c的条件编译(主要用来实现跨平台,Java自身可以自动跨越不同平台,这个功能对Java而言没有必要)功能。
然而,条件编译还有一些其他价值,调试,在开发中开启,发布产品中禁用。可以通过修改被导入的package方法来实现,修改的方法是将你程序中用到的代码从调试版改为发布版。

Java访问权限修饰词

包访问权限

不提供任何访问权限修饰词,则意味着它是“包访问权限”(有时也表示成friendly)。
取得对某成员的访问权的途径:
1.成员使用public
2.不加访问权限并放置在同一个包内
3.继承(可以访问protected成员,但访问不到private)
4.提供访问器(accessor)和变异器(mutator)方法(get/set方法)

public
protected 继承的类 + 同包的类
默认(default) 同包的类
private 你无法访问

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

类的访问权限

类的访问权限仅public和default可使用。
private和protected不可以使用(特例:内部类);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值