详解java访问修饰符

为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!
首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思。修饰符!修饰符!,就是用来修饰的一种符号!就好比说:一个美丽的女孩。这里美丽的是用来修饰女孩的,来说明这个女孩的特点!一把锋利的小刀,锋利的是来说明刀的特点的。所以java中的修饰符和上面是同一个道理,是用来说明java中的类,方法,和属性特点的一种符号!

1.访问修饰符

上面说了,修饰符是用来说明java中的类,方法,和属性特点的一种符号!访问修饰符的含义就是专门用来控制自身被其他类或者方法访问的一种权限的修饰符。

举个例子:
比如说大熊猫,大熊猫是中国的国宝,那么外国人就不能拥有它,现在变成说大熊猫是湖南的省宝(暂且这么说),那么除了湖南以外的省都不能拥有它,当然其他国家也不能拥有它。现在再说大熊猫是长沙的市宝,那么除了长沙市,谁也不能拥有它,包括其他市,其他省,其他国家!!!

在java中是一个道理,有四个访问修饰符,public,protect, default ,private。

我们以权限范围从小到大的顺序说起
我会以上面的市,省,国家来做例子

private :用private修饰的类、类属变量及方法,只有本类可以访问,而包内包外的任何类均不能访问它。
用上面的例子来说,private修饰的大熊猫就属于一个市,只有这个市里面的人才能看到大熊猫,这个省里里的其他市,其他的省,其他的国家都是看不到大熊猫的

default:用default修饰的类、类属变量及方法,只有本包中的类和本类可以访问,而其他的包和其他包中的类均不能访问它。

就相当于,default修饰的大熊猫就属于一个省,省里的市都可以看到大熊猫。

protect:用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问,

这个比较特殊,这样解释:protected修饰的大熊猫也是相当于一个省,省里的市都可以看到这个大熊猫,但是省外的市也可以看到大熊猫,但是省外的市要看这个大熊猫,

要有一个条件,这个条件是:省外的市要和拥有大熊猫的市有一个关系,这个关系是:省外的市,要属于拥有大熊猫的这个市(可能不太好解释,我的意思是,你们先不要拘泥与现实社会这个大框架中,就想着省外的那个市是属于拥有大熊猫的市的,只不过位置不在这个省里,而在外省而已),在这种情况下,省外的市也可以看到大熊猫

public:用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;这个好解释,大熊猫是属于全世界的,不管你是谁,都可以看到这个大熊猫!

第二次写博客,比喻的不太恰当,望谅解!

一定要看的干货

详解java访问修饰符的更多相关文章

  1. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  2. C#和JAVA 访问修饰符

    JAVA ----------------------------------------------- 访问修饰符        描述 ------------------------------- ...

  3. Java 访问修饰符详解

    访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...

  4. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  5. Java访问修饰符及其访问控制

    java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...

  6. C#和Java访问修饰符的比较

    访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...

  7. Java 访问修饰符总结

    Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口. Java语言采用访问控制修饰符来封装类及类的方法和属性的访问权限,从而向使用者暴露接口.隐藏细节. Java访问控制分为 ...

  8. 《Java基础知识》Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  9. Java访问修饰符和三大特征(封装,继承和多态)

    一.访问修饰符基本介绍: java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围): 1.公开级别:用public修饰,对外公开2.受保护级别:用protected修饰,对子 ...

随机推荐

  1. 原生ajax动态添加数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. inspect的使用安卓动态分析工具

    一.安装步骤 1.安装xposed 2.安装inspect 二.inspect 一个基于Xposed 开发的应用动态分析工具 github已开源 内置web页面 体验度很不错 ‘ 核心功能 监控Sha ...

  3. go例子(一) 使用go语言实现linux内核中的list_head

    package list 代码 package list import ( "fmt" ) // 数据接口 type ElemType interface{} // 节点 type ...

  4. Natas33 Writeup(Phar反序列化漏洞)

    Natas33: 又是一个上传文件的页面,源码如下: // graz XeR, the first to solve it! thanks for the feedback! // ~morla cl ...

  5. 基于openshift+华为对象存储的CSI开发

    目录 需求来源 环境准备 代码修改 镜像下载 镜像生成 修改部署文件 部署CSI插件 CSI原理 核心原理 生命周期: 组件介绍 FAQ 参考: 需求来源 项目上目前使用的是openshift 3.1 ...

  6. 进制-Iterative-进制转换

    2019-12-02 21:15:31 进制转换是计算机科学里的一个基础算法,通常可以使用如下的模版来进行计算. 下面我们来讨论一些关于进制的题目. 1271. Hexspeak  问题描述: 问题求 ...

  7. HDU 4325 Flowers 树状数组+离散化

    Flowers Problem Description As is known to all, the blooming time and duration varies between differ ...

  8. ajax实现图片上传与进度条

    这里使用的是bootstract的一个插件来实现 详情请查看文档中的进度条 https://v3.bootcss.com/components/ 引入必要的文件 <link href=" ...

  9. 感知器基础原理及python实现

    简单版本,按照李航的<统计学习方法>的思路编写 数据采用了著名的sklearn自带的iries数据,最优化求解采用了SGD算法. 预处理增加了标准化操作. ''' perceptron c ...

  10. [codevs2597]团伙<并查集>

    题目描述 Description 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友 ...