详细的解说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的权限问题的更多相关文章

  1. java 修饰符的作用一(public protected default private 组)

    1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问. java 默认的权限是defau ...

  2. java四种权限修饰符(public > protected > (default) > private)

    权限修饰符在哪里可以访问 (default) : 表示什么权限修饰符都不写 位置 public protected (default) private 同一个类 yes yes yes yes 同一个 ...

  3. 【java基础】(1)Java的权限修饰符(public,protected,default,private)

    访问权限修饰符权限从高到低排列是public  ,protected  ,default, private. 一.根据“是否是同包”.“是否是子类”分为4中情况+本类 5种情况 二.把 同包中的子类 ...

  4. 对访问修饰关键字public, protected, internal and private的说明

    对访问修饰关键字public, protected, internal and private的说明1.msdn: Internal types or members are accessible o ...

  5. Java修饰符public,protected,default,private访问权限

    public 具有最大的访问权限.所有类可访问. protected 主要是用来保护子类.自身.子类及同一个包中类可以访问 default 没有加修饰符的.有时候也称为friendly,它是针对本包访 ...

  6. 详解Java中的访问控制修饰符(public, protected, default, private)

    Java中的访问控制修饰符已经困惑笔者多时,其中较复杂的情况一直不能理解透彻.今天下定决心,系统.全面地研究Java中的访问控制修饰符的所有方面,并整理成这篇文章,希望有同样疑惑的读者读完后能有所收获 ...

  7. public protected default private

    简单来说,如果让一个变量或者方法,只想让自己类中的访问,那么就将它们设置成private 如果你想让一个变量或者方法,本包中的类可以访问,而且子类也可访问,但是包外的缺不想让他访问.就设置成prote ...

  8. 权限修饰符(public、protected、default、private)权限验证

    一.测试方法 在authorityTest包中建类AuthorityValidate package authorityTest; public class AuthorityValidate { p ...

  9. java 访问修饰符:public protected default private

随机推荐

  1. eclipse项目java版本更改

    然后.右键点击项目->properties->Java Compiler->....如图 ​ 最后,右键点击项目->properties->Project  Facets ...

  2. Window10下Apache2.4的安装和运行

    以前用Python运行的Web框架都是要运行在Linux下,加上WSGI服务器,比如Gunicorn+Flask,后来了解到了Apache,看看能不能基于Apache这个Web服务器下给python提 ...

  3. NGUI版虚拟摇杆

    以下是我用nui实现的一个虚拟摇杆. 1,示图 2.代码例如以下,都有比較具体的凝视.就不说明了. using UnityEngine; using System.Collections; using ...

  4. WinDbg抓取dmp文件

    应用程序发生异常时抓取dmp: adplus.vbs -crash -pn w3wp.exe -y srv*c:\symbols*http://msdl.microsoft.com/download/ ...

  5. Web开发者用什么编辑器?

    写在前面的话:从事web前端开发也有一段时间了,今天主要想分享的是文字(代码)编辑器.对于编辑器每个人都有自己的偏爱,也分不同语言的编码者,这里我就拿我接触过的来说说吧! Web开发者用什么编辑器? ...

  6. 小胖学PHP总结4-----PHP的字符串操作

    1.字符串连接 字符串是通过半角句号"."来连接的.能够把两个或两个以上的字符串连接成一个字符串. 2.去除字符串首尾空格和特殊字符 PHP中提供了trim()函数去除字符串左右两 ...

  7. caffe学习--cifar10学习-ubuntu16.04-gtx650tiboost--1g--01

    引用了下文的资料,在此感谢! http://www.cnblogs.com/alexcai/p/5468164.html http://blog.csdn.net/garfielder007/arti ...

  8. dwr框架中DWRUtil的方法

    dwr框架中DWRUtil的方法 2008-10-14 17:57:23|  分类: JAVA |  标签: |举报 |字号大中小 订阅     7. util.js 功能 util.js包含了一些工 ...

  9. oracle数据库 操作clob对象

    clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在Java 中读取clob类型的 ...

  10. crm操作销售订单实体

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Query;     using Microsoft.Cr ...