Java访问权限控制简述
来源:互联网 发布:科比常规赛数据统计 编辑:程序博客网 时间:2024/06/05 19:07
四种访问权限
Java中类与成员的访问权限共有四种,其中三种有访问权限修饰词:public
,protected
,private
,。
- Public:权限最大,允许所有类访问,但其他包下的类想要访问需使用
import
关键字将这些public类导入包中才可使用,换句话说,import
将不同包的类导入到一个包下,从而转化为包访问权限下的情况。 - Protected:除了提供包访问权限以外,还对继承该类的所有派生类赋予访问权限。
- Private:权限最小,只能由包含该成员(域和方法)的类本身访问,其他任何类都无法访问。
不使用这三个关键词时,则提供默认包访问权限,该权限只允许同一个包下(即同一个目录下的Java文件)的类访问该类。
注意:private和protected只能修饰成员,无法修饰类。类要么是public的,要么是包访问权限。
成员最终访问权限
- 类访问权限大小:
public
>包访问权限
。 - 成员访问权限大小:
public
>protected
>包访问权限
>private
。 - 成员和类的访问权限优先级:
类
>成员
。
成员最终访问权限为类权限和成员权限的叠加。只要类不是public
的,无论成员是哪种访问权限,静态与否(即对象成员还是类成员),包外的类都无法访问类成员(也无法静态调用),即对包外所有类不可见。
例子
- 对于包访问权限的类即使其方法是
public
的,也无法从包外访问。我用eclipse写了程序实际测试了一下,运行报错如下 - 当包外访问
public
类的private
或protected
(未继承该类)成员时,运行时会报错如下:该成员不可见
运行时提示该类无法解析。
其实道理很简单,因为成员是通过类或类对象调用的,类权限比成员权限优先级高,所以无论成员权限多大,只要类不是public
的,就无法通过import
导入,该类根本就对包外的类不可见,类的成员更是不可见了。
所以,通常来说,只要类是包访问权限,其成员最多是包访问权限。而且书中也建议:在创建包访问权限的类时,应尽可能将类的域声明为private
的,这样才有意义。
0 0
- Java访问权限控制简述
- java访问权限,基本特征简述
- java访问权限控制
- JAVA 权限访问控制
- JAVA访问权限控制
- JAVA访问权限控制
- Java 访问权限控制
- java 访问权限控制
- JAVA访问权限控制
- java 访问权限控制
- Java访问控制权限
- Java访问控制权限
- Java 访问控制权限
- java访问权限控制
- java访问权限控制
- java访问权限控制
- java 访问权限控制
- java访问控制权限
- Java中的输入输出总结
- ButterKnife 8.4.0 @BindView 失败,nullpointerexception
- 微信抢红包iOS版
- Java基本环境搭建
- Dorado 7 dataset 使用数据 js
- Java访问权限控制简述
- 构造函数到底是干什么的?
- Java中的输入输出总结
- iOS快速理解iOS中的MVC架构模式
- <Android 基础(三十三)> TabHost ~ 仿微信底部菜单
- javaScript----BOM和DOM的学习
- web.xml配置文件详解
- ThreadPoolExecutor 参数详解
- Android进阶——Android消息机制之Looper、Handler、MessageQueen