Java教程

Java访问权限控制

本文主要是介绍Java访问权限控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

    • 包:库单元
        • 包的作用
        • 包定义:package
        • 包导入:import
    • Java访问权限修饰词
        • 类的成员变量和方法访问权限
        • 类的访问权限

包:库单元

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包的作用

  1. 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  2. 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
  3. 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

包定义:package

Java中使用package语句定义包,package语句应该放在源文件的第一行,在每个源文件中只能有一个包定义语句,并且package语句适用于所有类型(类、接口、枚举和注释)的文件。定义包语法格式如下:

package 包名;

Java包的命名规则如下:

  • 包名全部由小写字母(多个单词也全部小写);
  • 如果包名包含多个层次,每个层次用“.”分割;
  • 包名一般由倒置的域名开头,比如com.baidu,不要有www;
  • 自定义包不能java开头。

注意:

  • 如果在源文件中没有定义包,那么类、接口、枚举和注释类型文件将会被放进一个无名的包中,也称为默认包。
  • package语句必须是文件中除注释以外第一行程序代码,一个源文件中只能有一个package语句。

包导入:import

如果使用不同包中的其它类,需要使用该类的全名(包名+类名)。代码如下:

example.Test test = new example.Test();

其中,example是包名,Test是包中的类名,test 是类的对象。
为了简化编程,Java引入了import关键字,import可以向某个Java文件中导入指定包层次下的某个类或全部类。import语句位于package语句之后,类定义之前。一个Java源文件可以包含多个import语句。
使用 import 导入单个类的语法格式如下:

import 包名+类名;
import example.Test; //导入单个类
import example.*;  //导入指定包下全部类,星号(*)只能代表类,不能代表包

Java访问权限修饰词

访问权限控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键字)、private。

类的成员变量和方法访问权限

  • private
    除了包含这个成员的类之外,所有类都无法访问这个成员,相当于自我封闭,防止其他类改变或删除这个方法。
  • 包访问权限
    没有任何修饰符的权限就是包访问权限,意味着当前包的所有类都可以访问这个成员,如表中所示,对于本包之外的类,这个成员就变成了private,访问不了。
  • protected
    在相同的class内部,同一个包内和其他包的子类中能被访问。要理解protected权限,就需要了解继承,因为这个权限处理的就是继承相关的概念,继承而来的子类可以访问。
  • public
    被public修饰的成员对任意一个类都是可用的,任何一个类都可以访问到,通过操作该类的对象随意访问public成员。

类的访问权限

Java中的访问权限也可以用来修饰类。不过需要注意,对于普通类而言,类的访问权限仅有public和包访问权限。

  • 如果一个类声明的时候用了public,则该类的类名必须与文件名一致,包括大小写,如果不匹配,会有编译错误;
  • 每个编译单元(文件)都只能有一个public类;
  • 当然不带public也是可以的,这时可以随时对文件命名。
这篇关于Java访问权限控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!