Java中四个访问修饰符public private protected 和默认(package-private)的用法详解
访问级别
访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。有两个级别的访问控制:
1.在顶级
- public或package-private(没有显式修饰符即默认权限)。
类可以用修饰符public声明,在这种情况下,类对所有类都可见。如果一个类没有修饰符(默认,也称为package-private),它只在自己的包中可见。
2.在成员级别
- public,private,protected或package-private(没有显式修饰符即默认权限)。
在成员级别,也可以使用public修饰符或无修饰符(package-private),如同顶级类一样,具有相同的含义。
对于成员,除public和默认外有两个附加的访问修饰符:private和protected:
private修饰符指定该成员只能在其自己的类中访问。
protected修饰符指定该成员只能在其自己的包(如package-private)中访问,此外还可以由另一个包中的该类的子类访问。
下表显示了对每个修饰符允许的成员的访问权限。
第一列指示类本身是否有权访问由访问级别定义的成员。正如你可以看到,一个类总是有权访问它自己的成员。
第二列指示与该类(不管其父级)相同的包中的类是否具有对成员的访问权限。
第三列指示在此包外部声明的该类的子类是否有权访问成员。
第四列指示是否所有类都具有对成员的访问权限。
访问级别通过两种方式影响您
第一,当您使用来自另一个源(例如Java平台中的类)的类时,访问级别将确定您自己的类可以使用的那些类的哪些成员
第二,当你写一个类时,你需要决定每个成员变量和类中的每个方法应该具有什么访问级别。
让我们看一下类的集合,看看访问级别如何影响可见性。下图显示了此示例中的四个类以及它们之间的关系。
此例中:
One包有Alpha和Beta两个类,Two包中有AlphaSub和Gamma类,其中AlphaSub继承Alpha
下表显示了Alpha类的成员(成员变量、成员函数)对于可应用于它们的每个访问修饰符的可见性。
Alpha类内所有成员都可以访问
Beta与Alpha在同一包中,因而Alpha的私有成员Beta不能访问
Alphasub与Alpha不在同一包中,但AlphaSub是Alpha的子类,因而AlphaSub不能访问Alpha的默认和私有成员
Gamma与Alpha位于不同包且无继承关系,因而Gamma只能访问Alpha的public成员
选择访问级别的提示:
如果其他程序员使用你的类,你想要确保不会发生滥用错误。访问级别可以帮助您这样做。
1.使用对特定成员有意义的最严格的访问级别。使用私有时,除非你有一个很好的理由不使用。
2.避免使用公共字段(常量除外)。
Java中四个访问修饰符public private protected 和默认(package-private)的用法详解相关推荐
- Java基础:Java中四种访问修饰符
一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...
- Java中四种访问修饰符的区别
在java中共有4种访问级别,按访问权限由高到低为:public(公有的).protected(受保护的).友好的(没有任何访问权限关键字修饰)和private(私有的). 类型 类内部 同一个包其他 ...
- java的四个访问修饰符_Java中的四种访问修饰符
Java中修饰符分为两种:访问修饰符和非访问修饰符.修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法. 今天这篇文章先介绍一下四种访问修饰符. 1.private ...
- Java的四种访问修饰符介绍
Java的四种访问修饰符详解 Java的四种访问修饰符分别是:public.protected.default.private 四种访问修饰符的访问范围: 访问修饰符类型 本类 本包 不同包中的子类 ...
- java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)
java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...
- java中有哪些访问修饰符_java中四种访问修饰符
Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...
- JAVA的四种访问修饰符
JAVA中的访问修饰符,主要用于设置类.属性.方法的访问级别,有以下四种: 修饰符 同一个类 同一个包 子类 任何地方 public(公共的) Y Y Y Y protected(受保护的) Y Y ...
- 访问权限修饰符( public,protected,default,private )的使用对象和作用域
使用范围: Java中,外部类的修饰符只能是public或protected(默认)这两种:而类的成员(属性,方法,内部类)的修饰符可以是(public,protected,default,priva ...
- Java中的四种访问修饰符:public、default、protect和private
前言 Java中有四种访问修饰符用于控制类.接口.变量和方法的封装程度.这四种修饰符分别为: private 私有的,类可见性 package/friendly/default 包级别的/友好的/默认 ...
最新文章
- 用80386汇编来编写asp.net页面。
- Mapper动态代理开发所要遵循的四个原则
- 若川的 2021 年度总结,弹指之间
- (译)元素浮动的那些事儿
- c语言智能小车项目的感想,智能小车毕业论文(完整版)要点分析.doc
- Python读取dat文件数据并构成Dataframe对象
- Java 8 终于支持 Docker !
- win10 当前操作环境不支持支付宝控件 完美解决办法
- usb环境Linux,Linux环境下USB的原理、驱动和配置
- oracle怎么查找数据泵,ORACLE数据泵使用详解
- java applet init_java applet init start
- 搜狗输入法 android 历史版本,搜狗输入法旧版
- 网页iframe框架常见的应用例子
- 绝对受用的求职经验分享
- Q版京剧脸谱来喽——武生
- 牛客国庆集训派对Day1 New Game!+计算几何
- unity3d:Matrix4x4矩阵位移,缩放,旋转
- 正向代理 反向代理 CDN加速
- springboot集成
- 01_Dive_into_python (reading note)