详细的解说public,protected,Default和private的权限问题
详细的解说public,protected,Default和private的权限问题
让人更好的了解public,protected,Default和private他们之间的权限问题,我会做一个直观的表格。通过一步一步的实验,将这个表格填写完整,让后在做一下总结,这样他们四个之间的关系,就会非常直观的展现出来,简单易懂,清楚明了。由于是详细的解说,可能篇幅会比较长,如果有读者想直接知道结论和结果,可以直接看五个步骤后的完整表格,最终的结论。
表格如下:
这样我会一步一步的完善这个表格,第一个实验,检验当前包,同一个类,中他们四个有的区别。
一. 当前包同一个类
在第三个方法中,并没有出现default,那是省略,并且必须省略,写出来就不对了。这样来输出一下结果是:
四个都可以很好的输出出来,这样写一下表格,
二. 当前包别的类
这样编译一下,得出的结果是:
可以看出,除了private,都是编译通过了,这样完善一下表格:
三. 别的包里面的别的类
我们分别在不同的包里面建立两个文件
文件 1
另外一个包里建立 文件 2
先把文件1编译出来,然后我们来试着编译文件2,看看结果如何:
很明显可以看出除了public可以编译,其他的三个都不可以,这样我们再次完善一下表格:
四.自己包继承关系的类
这样我们在试验时候,建立两个文件就可以了,一个是父类,一个子类,并且在同一个目录下:
文件 1
文件 2
这样我们来就来运行一下,看看结果:
可以看出只有private不可以,这样继续完善一下表格:
五. 从别的包里面继承关系的类
这个我们和上一个一样,建立一个父类,一个子类,不过不在同一个包里面:
文件 1
文件2
这样我们来运行一下,
可以看出,private和protected没有被输出,完成表格的最后一项,
这样的话,public,protected,default和private的权限范围就出来,总结一下
(1) public就是公共的,没有权限,只要可以找到,就可以调用。
(2) protected如果有继承关系,无论在哪里都可以调用。但是如果没有继承关系,不同包的时候就不可以调用。
(3) default 不管是不是继承关系,只要是不同包,就不可以调用。
(4) private 只能是在当前包里面的同一个类里面自己使用。
这样他们之间的权限问题就很明确了。谢谢观看阿童木与小丸子的博客!
详细的解说public,protected,Default和private的权限问题的更多相关文章
- java 修饰符的作用一(public protected default private 组)
1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问. java 默认的权限是defau ...
- java四种权限修饰符(public > protected > (default) > private)
权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个 ...
- 【java基础】(1)Java的权限修饰符(public,protected,default,private)
访问权限修饰符权限从高到低排列是public ,protected ,default, private. 一.根据“是否是同包”.“是否是子类”分为4中情况+本类 5种情况 二.把 同包中的子类 ...
- 对访问修饰关键字public, protected, internal and private的说明
对访问修饰关键字public, protected, internal and private的说明1.msdn: Internal types or members are accessible o ...
- Java修饰符public,protected,default,private访问权限
public 具有最大的访问权限.所有类可访问. protected 主要是用来保护子类.自身.子类及同一个包中类可以访问 default 没有加修饰符的.有时候也称为friendly,它是针对本包访 ...
- 详解Java中的访问控制修饰符(public, protected, default, private)
Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...
- public protected default private
简单来说,如果让一个变量或者方法,只想让自己类中的访问,那么就将它们设置成private 如果你想让一个变量或者方法,本包中的类可以访问,而且子类也可访问,但是包外的缺不想让他访问.就设置成prote ...
- 权限修饰符(public、protected、default、private)权限验证
一.测试方法 在authorityTest包中建类AuthorityValidate package authorityTest; public class AuthorityValidate { p ...
- java 访问修饰符:public protected default private
随机推荐
- 自己封装的CMusic类 【转】
http://www.cnblogs.com/zhangminaxiang/archive/2013/02/27/2936011.html 缘由: 在改正俄罗斯方块程序的功能的时候,想给这个程序增加一 ...
- Hadoop 2.2.0集群搭建
一.环境说明 1.虚拟机平台:VMware10 2.Linux版本号:ubuntu-12.04.3-desktop-i386 3.JDK:jdk1.7.0_51 4.Hadoop版本号:2.2.0 5 ...
- 转: linux下的自动对时
转自: http://www.cnblogs.com/vimmer/archive/2012/05/17/2505785.html 评注:date 命令格式为: date -s 2012-08-02 ...
- [LeedCode OJ]#85 Maximal Rectangle
[ 声明:版权全部,转载请标明出处.请勿用于商业用途. 联系信箱:libin493073668@sina.com] 题目链接:https://leetcode.com/problems/maxima ...
- 小胖说事20--------GCD笔记
1.系统提供的dispatch方法 为了方便的使用GCD.苹果提供了一些方法方便我们将BLOCK放在主线程或者后台程序运行.或者延后运行. //后台运行: dispatch_async(dispatc ...
- Python+Selenium框架 ---一个类文件多个测试方法情况下测试固件的写法
我们测试中,肯定需要,打开一个页面,然后测试这个页面的多个用例,才关闭这个页面,去测试其他页面,在unittest是有相关测试固件方法去支持这种行为.请看下面 # coding=utf-8 impor ...
- KVM技术
今天是周六,看到一片KVM相关的文章,感觉写得很不错,翻译了,原文在这里:KVM Technology 在开放服务器虚拟化的应用方面,KVM虚拟化技术近年来广受关注.自从2006年10月份诞生以来,其 ...
- align="absmiddle" 图片的中间上下对齐
align=absmiddle表示图像的中间与同一行中最大元素的中间对齐 AbsBottom 图像的下边缘与同一行中最大元素的下边缘对齐.AbsMiddle 图像的中间与同一行中最大元素的中间对齐.B ...
- VLC For Android Ubuntu14.04编译环境搭建
VLC多媒体播放器(英语:VLC media player,最初为VideoLAN Client.是VideoLAN计划的开放源码多媒体播放器.)支持众多音频与视频解码器及文件格式,并支持DVD影音光 ...
- Hybrid--WebView中使用Ajax
Hybrid框架下的app,使用的Ajax.须要注意的是UIWebViewDelegate不会监測到Ajax的request.也就是再运行Ajax代码时.shouldStartLoadWithReuq ...