文档章节

Java中的private、protected、public和default的区别

偶尔诗文
 偶尔诗文
发布于 2015/04/19 20:10
字数 466
阅读 45473
收藏 27

(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。

(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。

(3)对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。

(4)对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。

 

下表为Java访问控制符的含义和使用情况

 类内部  本包  子类 外部包 
public   √  √  √  √
protected  √  √  √  ×
default   √  √  ×  ×
 private  √  ×  ×  ×

注意:Java的访问控制是停留在编译层的,也就是它不会在.class文件中留下任何的痕迹,只在编译的时候进行访问控制的检查。其实,通过反射的手段,是可以访问任何包下任何类中的成员,例如,访问类的私有成员也是可能的。

区别:

(1)public:可以被所有其他类所访问。

(2)private:只能被自己访问和修改。

(3)protected:自身,子类及同一个包中类可以访问。

(4)default(默认):同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

© 著作权归作者所有

偶尔诗文
粉丝 12
博文 148
码字总数 65607
作品 0
沈阳
高级程序员
私信 提问
Java每天10道面试题,跟我走,offer有!(二)

11、面向对象的特征有哪些方面 12.java 创建对象的几种方式 13.修饰符public,private,protected,以及不写时的区别 修饰符 当前类 同一package 子孙类 其他package public √ √ √ √ protec...

Java干货分享
2018/11/06
54
0
eclipse的访问控制图标详解

Java中的访问修饰符(访问控制符)包括:public,protected,default,private。分别代表了不同的访问权限。如果省略,则被视为使用了默认的default作为访问修饰符。从字面含义上面理解,很显...

solar.xie
2015/08/13
120
0
kotlin 类及其成员的可见性

一、首先来看一个Kotlin和Java的比较 Kotlin Java 比较 private private 只有类内部的类和方法可以访问 protected protected 类的子类可见 —— default 相同的包内可以访问 intelnal – 相同...

王木东
2018/04/01
0
0
SpringBoot基础篇AOP之高级使用技能

更多相关内容,查看: http://spring.hhui.top/ 前面一篇博文 190301-SpringBoot基础篇AOP之基本使用姿势小结 介绍了aop的简单使用方式,在文章最后,抛出了几个问题待解决,本篇博文则将针对...

小灰灰Blog
03/10
40
0
SpringBoot2单元测试

引入maven依赖 引入powermock是为了解决静态方法mock的问题。 构建单元测试目录 标准的maven单元测试目录一样,在resources目录里面添加application.yml内容如下: 定义Application入口类 抽...

一刀
10/15
30
0

没有更多内容

加载失败,请刷新页面

加载更多

58. 静态工厂方法

参考:https://www.jianshu.com/p/ceb5ec8f1174 https://www.jianshu.com/p/fa15f63d399a 1.定义 用一个静态方法来对外提供自身实例的方法,即为我们所说的静态工厂方法(Static factory met...

20190513
12分钟前
4
0
Mybatis之StatementHandler

mybatis-3.4.6.release. 图1 StatementHandler是对CallableStatement、PreparedStatement、Statement的统一封装,在JDK中CallableStatement继承PreparedStatement,PreparedStatement继承Sta......

克虏伯
32分钟前
5
0
遇到API安全问题怎么办?F5 API加固解决方案怎么样?

  在各种APP泛滥的现在,背后都有同样泛滥的API接口在支撑,其中鱼龙混杂,直接裸奔的WEB API大量存在,安全性令人堪优在以前都采用自已定义的接口和结构,对于公开访问的接口,专业点的都会做...

梅丽莎好
55分钟前
10
0
迁Aliyun Redis踩坑之路 - 实践总结

背景: 从自建 redis(CacheCloud)到迁移到 aliyun redis 1. 踩“坑”一 问题: 平常小伙伴们在项目中可能用到redis key expire nofity的场景(比如:处理延时任务等),但是发现迁移后 ke...

少年与海
今天
3
0
干货:Kibana 可视化ElasticSearch数据展示分析

当你把数据存入ES中后,怎么更方面的查看这些数据,还想用不同的维度去看这些数据,是不是纠结,不能再专门搞个后台显示把。这里有神器 Kibana 专门干这个事情的,可以帮你把ES中的数据,通过...

枕邊書
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部