java权限修饰符

java权限修饰符

又叫下面这个名称

访问控制修饰符

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

  • public : 对所有类可见。使用对象:类、接口、变量、方法

  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

我们可以通过以下表来说明访问权限:

访问控制
修饰符 当前类 同一包内 子孙类(同一包) 子孙类(不同包) 其他包
public Y Y Y Y Y
protected Y Y Y Y/N(说明 N
default Y Y Y N N
private Y N N N N

 

defalult:大部分可能有点蒙,下面再简单介绍下

默认访问修饰符-不使用任何关键字

使用默认访问修饰符声明的变量和方法,对同一个包内的类是可见的。接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public。

如下例所示,变量和方法的声明可以不使用任何修饰符。

实例

String version = “1.5.1”;

boolean processOrder() {

return true;

}

此外还要注意:

Java 程序的 main() 方法必须设置成公有的,否则,Java 解释器将不能运行该类

 

 

受保护的访问修饰符-protected

protected 需要从以下两个点来分析说明:

  • 子类与基类在同一包中:被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问;

  • 子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。

protected 可以修饰数据成员,构造方法,方法成员,不能修饰类(内部类除外)

接口及接口的成员变量和成员方法不能声明为 protected。 可以看看下图演示:

java权限修饰符

子类能访问 protected 修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。

下面的父类使用了 protected 访问修饰符,子类重写了父类的 openSpeaker() 方法。

class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // 实现细节 } } class StreamingAudioPlayer extends AudioPlayer { protected boolean openSpeaker(Speaker sp) { // 实现细节 } }

如果把 openSpeaker() 方法声明为 private,那么除了 AudioPlayer 之外的类将不能访问该方法。

如果把 openSpeaker() 声明为 public,那么所有的类都能够访问该方法。

如果我们只想让该方法对其所在类的子类可见,则将该方法声明为 protected。

 

protected 是最难理解的一种 Java 类成员访问权限修饰词,更多详细内容请查看 Java protected 关键字详解

https://www.runoob.com/w3cnote/java-protected-keyword-detailed-explanation.html

访问控制和继承

请注意以下方法继承的规则:

  • 父类中声明为 public 的方法在子类中也必须为 public。

  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

  • 父类中声明为 private 的方法,不能够被继承。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/114824.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 玩转挖矿:家庭矿机组装全攻略!

    玩转挖矿:家庭矿机组装全攻略!离上次发挖矿的教程已经过去两个多月了。这两个多月发生了什么事情呢?特斯拉买入15亿美刀BTC美图也不修图买BTC和ETH去了美国一大波ETF申请中加密币交易所coinbase快要上市了20多万一枚的比特币冲到了40万2100一张的二手1660s涨到4000多了…..这段时间我也没有闲着,断断续续收了十几张卡,装了三台矿机。趁着第一波投入已经回本的好心情,给大家分享一下装显卡矿机的经验。(不做投资建议,不送显卡,要不要高位站岗完全看你们自己!)我本来是没时间来.

    2022年10月22日
  • mysql读写分离原理详解(主从复制和读写分离)

    主库记录二进制日志。在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句的执行顺序来记录二进制日志。在记录二进制日志后,主库会告诉存储引擎可以提交事务了。下一步,备库将主库的二进制日志复制到其本地的中继日志中。首先,备库会启动一个工作线程,称为I/O线程,I/O线程跟主库建立一个普通的客户端连接,然后在主库启动一个特殊的二进制转储线程,…

  • 2×3卡方检验prism_SPSS之卡方检验

    2×3卡方检验prism_SPSS之卡方检验点击蓝字关注我们在介绍卡方检验之前,我们先了解一下非参数检验:非参数检验是指在母体不服从正态分布或分布情况不明确时,即不依赖母体分布的类型,用以检验数据是否来自同一个母体假设的一类检验方法,又称分布自由检验。那么什么是卡方检验呢?01卡方检验的定义卡方检验是一种极为典型的对总体分布进行检验的非参数检验方法。用于检验数据是否与某种概率分布的理论数字相吻合,进而推断样本数据是否来自该分布的…

  • Linux服务器上搭建web项目环境[通俗易懂]

    Linux服务器上搭建web项目环境[通俗易懂]一、下载并安装jdk去官网下载linux系统上jdk的安装包jdk-8u181-linux-x64.tar.gz,在Linux的/usr目录下新建文件夹java,可以使用命令:cd/usrmkd

  • 2021年Android面试题及答案收集(不断更新中)

    2021年Android面试题及答案(适合中高级)找工作、招人必备之良品。后期不断完善中……

  • 一个可以恶搞朋友的关机程序!!!

    一个可以恶搞朋友的关机程序!!!文章目录前言一、关机程序1.思路分析二、运行结果如下1.点击后总结前言这是一个可以恶搞朋友的关机程序,实现原理是通过system直接调用dos命令窗口启动关机程序,既然是恶搞那就一定要给你的恶搞对象一定的“机会”,下面我将带大家一起来学习一个这个简单的恶搞程序。(源码可以私信找我要,简单改一下输出语句便可以直接自己使用)大家编译后可以直接把.exe文件发给你所需要恶搞的对象一、关机程序1.思路分析1.使用system调用dos命令窗口直接输入关机命令并弹出提示,此时windows响应跳出关机

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号