Java中四种访问控制权限解析(private、default、protected、public)
一、java权限简介
java当中有4种访问修饰限定符privat、default(默认访问权限),protected以及public。只有默认访问权限和public能够用来修饰类。修饰类的变量和方法四种权限都可以。
- private:如果一个类的方法或者变量被private修饰,那么这个类的方法或者变量只能在该类本身中被访问,在类外以及其他类中都不能显示地进行访问。
- default(默认访问权限):如果一个类的方法或变量被包访问权限修饰,也就意味着只能在同一个包中的其他类中显示地调用该类的方法或者变量,在不同包中的类中不能显示地调用该类的方法或变量。
- protected:如果一个类的方法或者变量被protected修饰,对于同一个包的类,这个类的方法或变量是可以被访问的。对于不同包的类,只有继承于该类的类才可以访问到该类的方法或者变量。
- public:被public修饰的方法或者变量,在任何地方都是可见的。
| 范围 | private | default | protected | public | |
|---|---|---|---|---|---|
| 1 | 同一包中的同一类 | √ | √ | √ | √ |
| 2 | 同一包中的不同类 | √ | √ | √ | |
| 3 | 不同包中的子类 | √ | √ | ||
| 4 | 不同包中的非子类 | √ |
二、举例使用
1.private

在(1)中当变量age在Person类里定义时被private修饰时,在test1内部需要引用时就会报错。因为age超出了访问权限。而在图(2)当中在class内部的age(this.age指在Person内部的age)使用时可以正常使用。
2.默认权限(default)

没有被任何修饰符修饰的变量即是默认访问权限,该变量可以在该包里的任意类里使用,
3.protected

demo中的test2继承了demo1中的test1,而且a被protected修饰。尽管test2和test1不在同一包中,却可以在test1中访问a,刚好符合protected变量的最大访问权限。
4.public
被public修饰的变量在任何位置都可以使用。
注意
1.四种访问权限范围的大小从小到大:private<default(默认访问权限)<protected<public。
2.当定义变量时不加任何修饰会默认为默认权限。
3.在子类中访问父类中的变量时需要用super。
到此这篇关于Java中四种访问控制权限解析(private、default、protected、public)的文章就介绍到这了,更多相关Java访问控制权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring-cloud 服务发现与消费(以ribbon为例)
这篇文章主要介绍了Spring-cloud 服务发现与消费(以ribbon为例),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-04-04
关于Java Guava ImmutableMap不可变集合源码分析
这篇文章主要介绍Java Guava不可变集合ImmutableMap的源码分析的相关资料,需要的朋友可以参考下面具体的文章内容2021-09-09
IDEA2023.3.4开启SpringBoot项目的热部署(图文)
本文使用的开发工具是idea,使用的是springboot框架开发的项目,配置热部署,可以提高开发效率,文中通过图文介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧2024-02-02


最新评论