访问权限控制

6.1 包:库单元

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

6.1.1 代码组织

   当编译一个.java文件时,在java文件中的每个类都会有一个输出文件,而该输出文件的名称与.java文件中的每个类的名称相同,只是多了一个后缀名.class。因此,在编译少量.java文件之后,会得到大量的.class文件。

      如果使用package语句,它必须是文件中除注释以外的第一句程序代码。在文件起始处写:

     package access;

    就表示你在声明该编译单元是名为access的类库的一部分。Java包的命名规则全部使用小写字母,包括中间的字也是如此。

6.1.2 创建独一无二的包名

按照惯例,package的名称的第一部分是类的创建者的反顺序的Internet域名。

扫描二维码关注公众号,回复: 2699948 查看本文章

6.2 Java访问权限修饰词

     public protected  和private,是置于类中每个成员的定义之前的 ——无论它是一个域还是一个方法。

     如果不提供任何访问权限修饰词,则意味着它是"包访问权限"。

62.1 包访问权限

包访问权限意味着当前包中的所有其他类对那个成员都有访问权限,但对于这个包之外的的所有类,这个成员却是private。由于一个编译单元(即一个文件),只能隶属于一个包,所以经由包访问权限,处于同一个编译单元中的所有类批次之间都是自动可访问的。

取得对某个成员的访问权的唯一途径是:

1、使该成员成为public。于是,无论是谁,无论在哪里,都可访问该成员。

2、通过不加访问修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。于是包内的其他类也就可以访问该成员了。

3、继承而来的类既可以访问public成员,也可以访问protected成员(但访问private成员却不行)。只有在两个类都处于同一个包内时,它才可以访问包权限的成员。

4、提供访问器和异变器,以读取和改变数值。

6.2.2 public:接口访问权限

     使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。

6.2.3 private:你无法访问

    private意思是,除了包含该成员的类之外,其他任何类都无法访问这个成员。

6.2.4 protected: 继承访问权限

   protected也提供包访问权限,也就是说,相同包内的其他类可以访问protected元素。

6.4 类的访问权限。

访问权限修饰词也可用于确定库中的哪些类对于该库的使用者是可用的。

类既不可以是private的,也不可以是private的。对于类的访问权限,仅有两个选择:包访问权限或public。

猜你喜欢

转载自blog.csdn.net/weixin_41906828/article/details/81479938