详解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. async,await怎么用

    async声明一个函数是异步的,await用于等待异步完成,并且await只能在async中使用. 使用async,await并行处理请求,速度减半: 将多个promise直接发起请求,先执行asyn ...

  2. mongo请求超时

    no_cursor_timeout=True参数的使用 实例: import pymongo handler = pymongo.MongoClient().db.col with handler.f ...

  3. treeselect 异步拿到数据后 要经过一个过滤 然后放入options 否则组件会崩溃

    事件缘由:由于城市树会反复调用,所以不用api每次调用,改用数据缓存一次读取,各处使用.然后我把调用的数据放入treeselect,发现组件就崩溃了,但是api读取的数据就没问题. 查看不是props ...

  4. KEIL编译出现错误“source file is not valid utf-8”

    实际情况是: .h文件一直报错source file is not valid utf-8的错误, 原因就是: 文件中出现了一个中文的“:”导致的.总结就是:如出现此类错误,可能是字符不够标准.

  5. JAVA-迭代器\增强型for循环。(新手)

    //导入的包.import java.lang.reflect.Array;import java.util.*;//创建的一个类.public class zylx1 { //公共静态的主方法. p ...

  6. linux环境下安装可操作图库语言Gremlin的图框架HugeGraph

    原创/朱季谦 图数据库是一项比较前沿而逐渐热门的技术,是NoSql数据库的一种,它应用图形理论存储实体之间的关系信息,最主要的组成有两种,结点集和连接结点的边.常见的图数据库有Neo4j,Januas ...

  7. F版本SpringCloud 3—大白话Eureka服务注册与发现

    引用:服务注册与发现,就像是租房子一样 前言 今天洛阳下雨了,唉,没有想到有裹上了羽绒服,不穿冷穿了热的尴尬温度.上学工作这么多年都在外面,家里竟然没有一件春天的外套. 日常闲聊之后,开始今天的芝士环 ...

  8. word2vec 和 glove 模型的区别

    2019-09-09 15:36:13 问题描述:word2vec 和 glove 这两个生成 word embedding 的算法有什么区别. 问题求解: GloVe (global vectors ...

  9. Python第一章-编码规范

    Python的基础知识 一.编码规范 PEP8[^ 注] 编码规范 Guido的关键点之一是:代码更多是用来读而不是写.编码规范旨在改善Python代码的可读性. 风格指南强调一致性.项目.模块或函数 ...

  10. Transformers 词汇表 | 二

    作者|huggingface 编译|VK 来源|Github 词汇表每种模型都不同,但与其他模型相似.因此,大多数模型使用相同的输入,此处将在用法示例中进行详细说明. 输入ID 输入id通常是传递给模 ...