Think in Java——访问权限控制

版权声明:本文为博主原创文章,转载注明出处即可。 https://blog.csdn.net/bskfnvjtlyzmv867/article/details/86564567

包:库单元

  1. 一个Java源代码文件常被称为编译单元(转译单元),一个编译单元必须有一个后缀名 .java,而在一个编译单元内只能有一个 public 类,类名与文件名相同。其他非 public 类主要是为 public 类提供支持的;
  2. 当编译一个 .java 文件的时候,文件中的每个类都会生成一个 .class 文件(内部类不会),然后交给Java解释器去查找、装载和解释;
  3. 编译过的代码生成的字节码文件通常放置在与源代码不同的目录中,但是必须保证JVM使用 CLASSPATH 可以找到该路径,否则会出现无法找到类的错误;
  4. 一个Java文件可能没有一个 public 类,这样类名可以随便定义,文件名也随意。

访问权限关键字

  1. 如果没有指明访问权限关键字,则意味着是“包访问权限”,有时可表示成 friendly,意思是对于当前包的其他类都能够可见,对于包外相当于 private

  2. 如果两个或者多个Java文件位于磁盘同一目录,同时都没有给自己设置 package,Java会有默认包的概念,将它们自动看作是隶属该目录的默认包之中,使得它们能够拥有包访问权限;

  3. protected 是相对于继承概念设计的,如果一个子类在新的包中继承了父类,受到包访问权限的限制,子类无法访问父类的一些成员,如果要解决这样的需求,可能需要将那些成员声明为 public,但是副作用是所有的类将都能访问。所以出现 protected,可以将那些父类成员用该关键字声明,使得不同包的子类能够的依然能够访问。

      类内部 包内 包外子类 包外
    public
    protected ×
    friendly × ×
    private × × ×

类的访问权限

类既不可以是 private,也不能说 protected 的,内部类可以是这两种。类只能是 public 或者包访问权限的,如果不希望其他类对该类有访问权,可以将类的构造器进行屏蔽。

猜你喜欢

转载自blog.csdn.net/bskfnvjtlyzmv867/article/details/86564567