访问级别

访问级别修饰符确定其他类是否可以使用特定字段或调用特定方法。有两个级别的访问控制:
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)的用法详解相关推荐

  1. Java基础:Java中四种访问修饰符

    一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...

  2. Java中四种访问修饰符的区别

    在java中共有4种访问级别,按访问权限由高到低为:public(公有的).protected(受保护的).友好的(没有任何访问权限关键字修饰)和private(私有的). 类型 类内部 同一个包其他 ...

  3. java的四个访问修饰符_Java中的四种访问修饰符

    Java中修饰符分为两种:访问修饰符和非访问修饰符.修饰符中,有一些修饰符可以既可以修饰类,也可以修饰方法,但是有一些修饰符只能修饰符方法. 今天这篇文章先介绍一下四种访问修饰符. 1.private ...

  4. Java的四种访问修饰符介绍

    Java的四种访问修饰符详解 Java的四种访问修饰符分别是:public.protected.default.private 四种访问修饰符的访问范围: 访问修饰符类型 本类 本包 不同包中的子类 ...

  5. java中四种操作(DOM、SAX、JDOM、DOM4J)xml方式详解与比较(转)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式详解与比较(转) http://wishlife.javaeye.com/blog/181865 posted on 2010-12 ...

  6. java中有哪些访问修饰符_java中四种访问修饰符

    Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...

  7. JAVA的四种访问修饰符

    JAVA中的访问修饰符,主要用于设置类.属性.方法的访问级别,有以下四种: 修饰符 同一个类 同一个包 子类 任何地方 public(公共的) Y Y Y Y protected(受保护的) Y Y ...

  8. 访问权限修饰符( public,protected,default,private )的使用对象和作用域

    使用范围: Java中,外部类的修饰符只能是public或protected(默认)这两种:而类的成员(属性,方法,内部类)的修饰符可以是(public,protected,default,priva ...

  9. Java中的四种访问修饰符:public、default、protect和private

    前言 Java中有四种访问修饰符用于控制类.接口.变量和方法的封装程度.这四种修饰符分别为: private 私有的,类可见性 package/friendly/default 包级别的/友好的/默认 ...

最新文章

  1. 用80386汇编来编写asp.net页面。
  2. Mapper动态代理开发所要遵循的四个原则
  3. 若川的 2021 年度总结,弹指之间
  4. (译)元素浮动的那些事儿
  5. c语言智能小车项目的感想,智能小车毕业论文(完整版)要点分析.doc
  6. Python读取dat文件数据并构成Dataframe对象
  7. Java 8 终于支持 Docker !
  8. win10 当前操作环境不支持支付宝控件 完美解决办法
  9. usb环境Linux,Linux环境下USB的原理、驱动和配置
  10. oracle怎么查找数据泵,ORACLE数据泵使用详解
  11. java applet init_java applet init start
  12. 搜狗输入法 android 历史版本,搜狗输入法旧版
  13. 网页iframe框架常见的应用例子
  14. 绝对受用的求职经验分享
  15. Q版京剧脸谱来喽——武生
  16. 牛客国庆集训派对Day1 New Game!+计算几何
  17. unity3d:Matrix4x4矩阵位移,缩放,旋转
  18. 正向代理 反向代理 CDN加速
  19. springboot集成
  20. 01_Dive_into_python (reading note)

热门文章

  1. 计算机类一级学术刊物、核心刊物列表及简介
  2. idea 全局查找快捷键
  3. WooCommerce最新2.3.10汉化简体中文版语言包mo免费下载
  4. 第四课 尚硅谷Scala语言学习-面向对象
  5. 2018一瞬即逝,奋斗的日子也需要停下来,总结反思,2019也许不会更好,但不会差。
  6. 虹科教您 | KPA Automation softPLC入门操作指南(1)
  7. 一看即懂的TCP首部确认号和序列号解析!!!
  8. Unity流水账14:GL、Graphics及CommandBuffer
  9. 狂神说docker(最全笔记)
  10. 揭秘:QQ号码能准确测出QQ主人年龄问题