详解java访问修饰符
详解java访问修饰符
为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!
首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思。修饰符!修饰符!,就是用来修饰的一种符号!就好比说:一个美丽的女孩。这里美丽的是用来修饰女孩的,来说明这个女孩的特点!一把锋利的小刀,锋利的是来说明刀的特点的。所以java中的修饰符和上面是同一个道理,是用来说明java中的类,方法,和属性特点的一种符号!
1.访问修饰符
上面说了,修饰符是用来说明java中的类,方法,和属性特点的一种符号!访问修饰符的含义就是专门用来控制自身被其他类或者方法访问的一种权限的修饰符。
举个例子:
比如说大熊猫,大熊猫是中国的国宝,那么外国人就不能拥有它,现在变成说大熊猫是湖南的省宝(暂且这么说),那么除了湖南以外的省都不能拥有它,当然其他国家也不能拥有它。现在再说大熊猫是长沙的市宝,那么除了长沙市,谁也不能拥有它,包括其他市,其他省,其他国家!!!
在java中是一个道理,有四个访问修饰符,public,protect, default ,private。
我们以权限范围从小到大的顺序说起
我会以上面的市,省,国家来做例子
private :用private修饰的类、类属变量及方法,只有本类可以访问,而包内包外的任何类均不能访问它。
用上面的例子来说,private修饰的大熊猫就属于一个市,只有这个市里面的人才能看到大熊猫,这个省里里的其他市,其他的省,其他的国家都是看不到大熊猫的
default:用default修饰的类、类属变量及方法,只有本包中的类和本类可以访问,而其他的包和其他包中的类均不能访问它。
就相当于,default修饰的大熊猫就属于一个省,省里的市都可以看到大熊猫。
protect:用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问,
这个比较特殊,这样解释:protected修饰的大熊猫也是相当于一个省,省里的市都可以看到这个大熊猫,但是省外的市也可以看到大熊猫,但是省外的市要看这个大熊猫,
要有一个条件,这个条件是:省外的市要和拥有大熊猫的市有一个关系,这个关系是:省外的市,要属于拥有大熊猫的这个市(可能不太好解释,我的意思是,你们先不要拘泥与现实社会这个大框架中,就想着省外的那个市是属于拥有大熊猫的市的,只不过位置不在这个省里,而在外省而已),在这种情况下,省外的市也可以看到大熊猫
public:用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;这个好解释,大熊猫是属于全世界的,不管你是谁,都可以看到这个大熊猫!
第二次写博客,比喻的不太恰当,望谅解!
一定要看的干货
详解java访问修饰符的更多相关文章
- java访问修饰符
了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...
- C#和JAVA 访问修饰符
JAVA ----------------------------------------------- 访问修饰符 描述 ------------------------------- ...
- Java 访问修饰符详解
访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...
- Java访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...
- Java访问修饰符及其访问控制
java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...
- C#和Java访问修饰符的比较
访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...
- Java 访问修饰符总结
Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口. Java语言采用访问控制修饰符来封装类及类的方法和属性的访问权限,从而向使用者暴露接口.隐藏细节. Java访问控制分为 ...
- 《Java基础知识》Java访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...
- Java访问修饰符和三大特征(封装,继承和多态)
一.访问修饰符基本介绍: java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围): 1.公开级别:用public修饰,对外公开2.受保护级别:用protected修饰,对子 ...
随机推荐
- C#中无边框窗体拖动
//定义一个bool变量标识是否拖动窗体 private bool isMove = false; //记录鼠标的位置 private Point point; 定义的变量 /// <summa ...
- 面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!
最近看了 @JavaGuide 发布的一篇『面试官问我如何保证Kafka不丢失消息?我哭了!』,这篇文章承接这个主题,来聊聊如何保证 RocketMQ 不丢失消息. 0x00. 消息的发送流程 一条消 ...
- 为什么 select count(*) from t,在 InnoDB 引擎中比 MyISAM 慢?
统计一张表的总数量,是我们开发中常有的业务需求,通常情况下,我们都是使用 select count(*) from t SQL 语句来完成.随着业务数据的增加,你会发现这条语句执行的速度越来越慢,为什 ...
- MySQL基础知识_1
平时只会使用简单的增删改查,促使我学习这个来源于一道面试题,左思右想,依然想不出来,所以决定系统的学习一下. MySQL创建数据库 CREATE DATABASE <数据库名>; CREA ...
- github本地提交代码到远程仓库
1.git工作状态: Workspace: 工作区 :等于平时放代码的地方 Index / Stage: 暂存区,临时存放你的改动,它只是一个文件,保存即将提交到文件列表信息 Repository: ...
- 【多校】2019 Multi-University Training Contest 1官方题解
Blank 定义dp[i][j][k][t]dp[i][j][k][t]dp[i][j][k][t]代表填完前ttt个位置后,{0,1,2,3}\{0,1,2,3\}{0,1,2,3}这4个数字最后一 ...
- Codeforces Add on a Tree
Add on a Tree time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- elasticsearch和kibana安装后,外网无法访问
问题描述: 现在解压elasticsearch之后,启动,通过http://localhost:9200可以访问的到,但是http://ip:9200访问不到 解决方法: 修改elasticsearc ...
- [Flink] Flink的waterMark的通俗理解
导读 Flink 为实时计算提供了三种时间,即事件时间(event time).摄入时间(ingestion time)和处理时间(processing time). 遇到的问题: 假设在一个5秒的T ...
- 【笔记3-26】Python语言基础
编译型语言和解释型语言 编译型语言 C 先编译 解释型语言 Python 边执行边编译 Python的介绍 吉多·范罗苏姆 1991 解释型语言 Life is short you need Pyth ...