第6章 访问权限控制

2014-12-09 20:14:52

访问权限控制

1、访问权限控制出现的原因

  代码需要不断的重新创作才能变得完善。

  要完善的公用代码(如:类库)已经被客户程序使用,修改后,可能会影响客户程序的功能。

  添加约定规范,规定可能需要修改的公用代码不能被客户程序使用。

  这些约定规范利用访问权限控制来实现。

2、访问权限控制的实现方法:提供访问权限修饰词

  权限由大到小:public,protected,包访问权限(无关键词),private

3、包出现原因

  防止类的命名冲突,利用命名空间的不同来帮助解决类名冲突

4、包是什么?

  包就是一个单位命名空间。

  存在于单一目录中的类,默认位于默认包中。

  整个命名空间就是,环境变量CLASSPATH的值指定的目录。每个目录又以包为单位分成了若干单位命名空间。

  

5、每个包(库)实际上就是一组类

  每个编译单元(.java)有且只有一个public类。编译后,编译单元中定义了几个类,相应就会产生几个.class文件。

6、分割出命名空间(打包类)

  package coreservlets;

  package语句必须放在文件中除了注释之外的第一句

7、使用命名空间

  import java.util.*;

  使用类时,必须指明是哪个命名空间的类。

  编译时,javac遍历CLASSPATH指定的目录,寻找导入的命名空间。

8、package和import存在的意义:分割命名空间,避免名称冲突

9、如何创建独一无二的包名

  包名都使用小写(java是大小写敏感语言)

  惯例:创建者Internet域名反序+自定义包名

  eg:有域名MindView.net,则可以设置包名为:net.mindview.simple,此包存放目录:CLASSPATH/net/mindview/simple

10、使用jar文件时,不止要指明它所在位置的目录,要将它的实际名称写清楚

11、不同命名空间内有名字相同的类时,若被同一文件导入,则在使用此类时,用全称限制名,即包名+类名。示例程序ch601

12、创建自己的类库,放在CLASSPATH指定的目录下

13、java中,无条件编译,因为跨平台

14、java调试技巧

  发布版本中无调试信息,开发版本中有调试信息。

  通过导入不同的包来实现。

  例如:两个包debug和debugoff,两个包中有相同的类,debug包中的类可以打印调试信息,若不需要打印调试信息,则导入另一个包。

  示例程序:ch602

15、访问权限修饰词:public,protected,private及‘不提供修饰词’

16、默认包:处于同一目录路径且未限定任何包名称 的文件,自动归属到该目录的默认包中。

17、public:可以被所有类对象访问

  protected:可以被子类对象访问

  不提供修饰词:可以被同包内的类对象访问

  private:只能被本类对象访问

18、权限控制就是让类的制作者控制此类哪些能被客户端程序使用,哪些不能被客户端程序使用。能被使用的就被封装成接口,而具体实现不能直接被使用。总之,访问权限控制+接口与实现的分离=封装,大大增加了程序的可维护性。

19、使用时需要注意的几点:

  每个编译单元最多只能有一个public类,也可以没有public类

  public类的类名必须与编译单元名相同,大小写敏感

  

原文地址:https://www.cnblogs.com/ISeeIC/p/4154669.html