java中4种修饰符访问权限的区别及详解全过程
java中4种修饰符访问权限的区别及详解全过程
http://jingyan.baidu.com/article/fedf0737700b3335ac8977ca.html
java中4中修饰符分别为public、protect、default、private,他们这就说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高。
下面详细讲述下它们的访问权限问题。(同一个类中除内部类外所有修饰符都是可以访问的,所以下面排除这种情况。)
首先在这里把它们的访问权限表示出来:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
下面做进一步说明java中4种修饰符访问权限的区别及详解全过程:
工具/原料
java运行环境
Notepad++
方法/步骤
首先,说明public的权限问题,定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。
这里要注意:当重写父类成员函数时,子类的成员函数不能比父类的成员函数权限小,一般重写把权限定义相同即可。
代码如图所示:




上边把类都建好了,然后开始测试,如果均能编译通过,就说明用public修饰的类在本类、同包、子类、其他包中互相访问都是可以的。测试结果如下:(事实证明可以访问)

再来说明protect权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。
这里要注意:public可以修饰任何类而且类名要与文件名相同,protected不可以修饰类。
Person代码如图所示,其他3个类同上:

同样开始测试protected权限问题,如果Person、People、Student能编译通过,就说明用protected修饰的类在本类、同包、子类中互相访问都是可以的,而Computer编译不通过说明protected不可以在包外没有继承关系的类中互相访问。测试结果如下:

接着说明default权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。
这里要注意:default(不写默认指定default)同public一样可以修饰任何类而且类名要与文件名相同。
Person代码如图所示,其他3个类同上:

继续开始测试default权限问题,如果Person、People能编译通过,就说明用default修饰的类在本类、同包中互相访问都是可以的,而Student、Computer编译不通过说明default不可以在包外不管有没有继承关系的类都不可以互相访问。测试结果如下:


最后说明private权限问题,同样定义4个类Person、People、Student、Computer,分别比较本类、同包、子类、其他包的区别。
这里要注意:private同protected一样不可以修饰类。
Person代码如图所示,其他3个类同上:

最后测试private权限问题,private意思是私有的,如果Person能编译通过而People、Student、Computer编译不通过,就说明用private修饰的类只能在本类中访问。测试结果如下:

综上所述,java中4种修饰符访问权限的区别及详解全过程就此演示完了,再一次说明java语言的严谨性和安全性,我们在以后使用这4中修饰符时创建一个类,这个类的权限尽量要小,这样才能减少漏洞和提高安全性,从而体现java面向对象的封装性。
最后如图再回忆一下java中4个修饰符的访问权限:

java中4种修饰符访问权限的区别及详解全过程的更多相关文章
- java中4种修饰符访问权限的区别
访问权限 类 本包 子类 其他包 public √ √ √ √ protected √ √ √ x default(缺省) √ √ x x private √ x x x
- java中四种修饰符(private、default、protected、public)的访问权限
权限如下: no. 范围 private default protected public 1 同一包下的同一个类 √ √ √ √ 2 同一包下的不同类 × √ √ √ 3 不同包下的子类 × × √ ...
- private ,friendly,public protected四种修饰符访问权限(从idea代码提示中看出)
文件一,本类中可以访问全部: package xsf; /** * Created by liwenj on 2017/7/25. */ public class A { private int x= ...
- java中4中类修饰符访问范围
public:本类中可见,同包中可见,子类中可见,其他包中可见. protected:本类中可见,同包中可见,子类中可见,其他包不可见. 默认:本类中可见,同包中可见,子类不可见,其他包不可见. pr ...
- Java 有几种修饰符?分别用来修饰什么
4种修饰符 访问权限 类 包 子类 其他包 public ∨ ∨ ∨ ∨ protect ∨ ∨ ∨ × default ∨ ∨ ...
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- Java学习笔记十九:Java中的访问控制修饰符
Java中的访问控制修饰符 一:Java修饰符的种类: 访问修饰符 非访问修饰符 修饰符用来定义类.方法或者变量,通常放在语句的最前端.我们通过下面的例子来说明: public class Hello ...
- java中訪问修饰符
较之c++ 中 public,proctected, private 三种訪问控制, java多了默认訪问控制. java中四种訪问控制权限 简单描写叙述为一下四句: 1)private 仅本类可见 ...
- java中的类修饰符、成员变量修饰符、方法修饰符。
类修饰符: public(访问控制符),将一个类声明为公共类,他可以被任何对象访问,一个程序的主类必须是公共类. abstract,将一个类声明为抽象类,没有实现的方法,需要子类提供方法实现. fin ...
随机推荐
- kernel panic必备知识
获得vmcore Kernel dump 是什么 Kdump – 捕捉kernel dump的工具 Kdump的工作原理 Kdump的配置 Dump分析的工具crash(1) 准备环境 根据vmcor ...
- 网络安全web部分
Web安全 一. SQL注入 1) 原理 通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序 ...
- Django admin(四)一些有用定制
原文:https://www.cnblogs.com/linxiyue/p/4075048.html Model实例,myapp/models.py: 1 2 3 4 5 6 7 8 9 10 11 ...
- Codeforces 816C/815A - Karen and Game
传送门:http://codeforces.com/contest/816/problem/C 本题是一个模拟问题. 有一个n×m的矩阵.最初,这个矩阵为零矩阵O.现有以下操作: a.行操作“row ...
- windows 2003一个网卡绑定多个IP地址
1.打开“网络连接”,选中需要添加多个IP的“本地连接”-->右键-->“属性”: 2.从“常规”中找到“Internet 协议(TCP/IP)属性”: 3.选择手动设置IP地址.网关.掩 ...
- [bzoj3282]Tree_LCT
Tree bzoj-3282 题目大意:给你n个点m个操作.更改单点权值,加边,删边:查询路径异或和. 注释:$1\le n,m\le 10^5$ 想法:看到了加边删边,果断想到LCT维护.至于路径异 ...
- swift 笔记 (十四) —— 构造过程
构造过程 为了生成类.结构体.枚举等的实例,而做的准备过程,叫做构造过程. 为了这个过程,我们一般会定义一个方法来完毕,这种方法叫做构造器.当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作 ...
- CefSharp 设置cookie
设置cookie var cookieManager = CefSharp.Cef.GetGlobalCookieManager(); await cookieManager.SetCookieAsy ...
- C语言读取文件大量数据到数组
针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理. 改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100] ...
- 过时的PreferenceActivity导致Fragment显示问题
问题描写叙述: 在一个点击preferenceactivity中某项显示一个Fragment的场景中,出现错误: java.lang.RuntimeException: This should be ...