本文主要是介绍Java访问权限控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 包:库单元
- 包的作用
- 包定义:package
- 包导入:import
- Java访问权限修饰词
-
包:库单元
为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。
包的作用
- 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
- 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
- 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
包定义: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访问权限控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!