Java编程思想读书笔记(5):访问控制权限

五、访问权限控制

  1. 访问权限控制的等级。从最大到最小权限依次是:public、protected、包访问权限(无关键字,friendly)、private。

  2. Java可运行程序是一组可以打包并压缩为一个Java文档文件(JAR,使用java的jar文档生成器)的.class文件。Java解释器负责这些文件的查找、装载和解释。

  3. package和import关键字的主要作用,是将单一的全局名字空间分割开,使得无论多少人使用Internet以及java开始编写类,都不会出现名称冲突问题。

  4. Java解释器的运行过程如下:首先,找出环境变量CLASSPATH。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到的路径会与CLASSPATH中的各个不同的项相连接,解释器就在这些目录中查找你所要创建的类名称相关的.class文件。(用于在class文件中使用import导入其他类时加载所指定的导入类)

  5. 务必记住,无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。这个包必须位于其名称所指定的目录之中,而该目录必须是在以CLASSPATH开始的目录中可以查询到的。如果CLASSPATH中缺少“.”作为其中路径之一的话,Java就不会查找那里。

  6. 对于类的访问权限,仅有两个选择:包访问权限和public。如果不希望其他任何人对该类拥有访问权限,可以把所有的构造器都指定为private,从而任何人都不能创建该类的对象。但有一个例外,就是可以在该类的static成员内部可以创建,外界通过静态方法引用。

  7. 取得对某成员的访问权的唯一途径是:
    1)使该成员称为public;
    2)通过不加访问权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。
    3)通过继承,使得继承的子类可以访问protected成员。
    4)提供访问器(accessor)和变异器(mutator)方法(“get/set方法”),以读取和改变数值。

  8. protected的可见性在于两点:

    1. 基类的 protected 成员是包内可见的,并且对子类可见;
    2. 若子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。

在碰到涉及protected成员的调用时,首先要确定出该protected成员来自何方,其可见性范围是什么,然后就可以判断出当前用法是否可行了。

你可能感兴趣的:(Java)