Java访问权限控制简述
2016-11-29 19:58
399 查看
四种访问权限
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的,这样才有意义。
相关文章推荐
- java--访问控制和内部类 (权限修饰符)
- java学习笔记八——访问权限控制
- 关于java访问权限控制的误区
- java 核心技术 卷1 第三章 InputTest &&权限访问控制
- 【Java】第6章 访问权限控制
- 从0开始学java-访问权限控制
- java的访问权限控制--疑问
- JAVA 权限访问控制
- Java程序访问权限控制(policy文件)
- java访问权限的控制
- Java初级--访问控制权限及多线程
- thinking in java笔记 6 访问权限控制
- java编程思想阅读笔记(二)访问权限控制和复用类
- java访问权限控制符
- 12.16(Java 访问权限控制, ClassPath,ibatis调试心得)
- JavaWeb 案例——访问权限控制
- 访问控制权限和 ------java命名规范
- Java中的四种访问权限控制
- JAVA访问权限控制
- Java 编程思想(第四版)学习笔记(6)访问权限控制