您的位置:首页 > 编程语言 > Java开发

Java编程思想笔记-六

2017-11-12 16:46 267 查看
1.为什么设置访问权限控制:

最初代码的实现并非最佳,于是想通过重构达到最佳效果,并不能使客户端的程序出现问题,然而如果没有权限控制,开发者并不知道哪些方法是供客户端程序使用的,所以通过访问权限控制达到一个明显分界


2.首先明白包的概念:

包内包含有一组类,他们在单一的名字空间下被组织在了一起,相同目录下的所有不具有明确package声明的文件,都会被视作是该目录下默认包的一部分


3.编译单元

通俗说就是一个Java文件,一个Java文件可以有很多个类,但是只能有一个public类,该类名必须与Java文件同名,而其他类在包外是无法看见的,因为他们不是public类,而他们也主要是为了给public类提供支持。


4.Java 解释器的工作程序如下

首先,它找到环境变量 CLASSPAT。CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。

从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从 CLASSPATH 根开始的一个路径名(所以 package foo.bar.baz 会变成 foo\bar\baz 或者 foo/bar/baz;正斜杠还是反斜杠由操作系统决定)。

随后将它们连接到一起, 成为 CLASSPATH内的各个条目(入口)。以后搜索.class 文件时,就可从这些地方开始查找与准备创建的类名对应的名字。

5.用import改变行为

书中练习以debug为例,写两个Debug类,分别存在两个不同的包一个是debug,另一个是debugoff,这两个debug类拥有同样的方法,差别是debug中的方法的确是打印debug信息的,而debugoff的方法却不进行任何操作。
这其中的意义:项目上线后肯定是不需要打印debug信息的,所以我们在开发的时候用import导入debug,上线后改为导入debugoff


6.关键词及权限范围

修饰词               本类    同一个包的类  继承类 其他类
private              √          ×         ×      ×
无(默认)            √          √         ×      ×
protected            √          √         √      ×
public               √          √         √      √


7.接口和实现:

把数据和方法包装进类中,将具体的实现,被称作封装
在数据类型内部划分访问权限边界,这种设计的原因:


规定客户程序员哪些能够使用,哪些不能。我们可在结构里构建自己的内部机制,不用担心客户程序员将其当作接口的一部,从而自由地使用或者“滥用”。

我们需要将接口同实施细节分离开。若结构在一系列程序中使用,但用户除了将消息发给 public 接口之外,不能做其他任何事情。

8.类的访问权限控制

类只能有两种访问权限,一个是public,另一个就是default,default类则是为主类提供支持的
如果想隐藏类,可以将构造器设为private,(引出单例模式)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: