Java访问修饰符的区别

public:公开的,任何地方都可以访问。
protected:受保护的,同一个包中的类和所有子类(可跨包)可以访问。
private:私有的,只有在同一个类中可以访问。
默认(无修饰符):包级私有(package-private),只有在同一个包中可以访问。

    文件名和 public 类名必须匹配:一个 .java 文件中可以有多个类,但最多只能有一个 public 类。如果某个类被声明为 public,那么文件名必须与这个类的名字完全一致(区分大小写),并且文件扩展名是 .java。包声明:通常,Java 类会被放置在包(package)中。包声明应该在文件的第一行(在任何导入语句之前)。类的可见性:如果一个类没有被声明为 public,那么它的可见性是包级私有的(package-private),这意味着它只能在同一个包中访问。

光看文字我感觉啥用没有,下面给出实例代码来说明。


目录结构:
在这里插入图片描述

day00_访问修饰符.java
给出四中访问修饰符类型的方法

package study;public class day00_访问修饰符 {public void publicMethod() {System.out.println("Public method in PublicClass");}protected void protectedMethod() {System.out.println("Protected method in PublicClass");}void packagePrivateMethod() {System.out.println("Package-private method in PublicClass");}private void privateMethod() {System.out.println("Private method in PublicClass");}
}

day00_访问修饰符_同一个包内.java
很明显,私有方法无法在不同类被访问。

package study;public class day00_访问修饰符_同一个包内 {public void accessMethods() {day00_访问修饰符 publicClass = new day00_访问修饰符();publicClass.publicMethod();         // 可以访问publicClass.protectedMethod();      // 可以访问publicClass.packagePrivateMethod(); // 可以访问
//         publicClass.privateMethod();     // 不能访问}
}

day00_访问修饰符_不同包内.java
我感觉这里就是核心了,可以发现在不同包下,只要继承了不同包下的类,就可以访问它的protected类型方法,即使不在同一个包下。
但是默认的不加显示修饰符的包级私有(package-private)方法,就算你继承了,是它的子类,但是父类和子类不同同一个包下,那就是无法访问包级私有(package-private)方法。

package study_实验访问修饰符;import study.day00_访问修饰符;public class day00_访问修饰符_不同包内 extends day00_访问修饰符
{public void accessProtectedMethod() {publicMethod();        // 可以访问,因为是 publicprotectedMethod();     // 可以访问,因为是子类// packagePrivateMethod(); // 不能访问,因为不同包// privateMethod();     // 不能访问,私有方法}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ORBSLAM3_ROS_Ubuntu18_04环境搭建安装

orbslam3安装 ORB-SLAM3配置及安装教程(2023.3)_orbslam3安装-CSDN博客 换源,换成国内的 搜索software 安装工具 sudo apt install git sudo apt update sudo apt install gcc g cmake安装 cmake安装新版本 ubuntu20.04安装cmake详细…

转让无区域商业管理公司基本流程和要求

无区域公司转让的条件和要求取决于您的业务需求和目标。我们的专业团队将与您合作,深入了解您的公司背景、行业情况和发展计划,为您量身定制适合您的转让方案。无论是公司规模、经营期限、资产状况还是法律形式,我们都将综合考虑确保达到您的…

一键掌控,文件格式转换无忧!轻松驾驭各种文件格式,高效管理您的数字世界

信息爆炸的时代,我们每天都会接触到各种各样的文件格式。无论是工作文档、图片、视频还是音频文件,它们都以不同的格式存在于我们的电脑和移动设备中。然而,不同的软件和应用往往只支持特定的文件格式,这给我们的工作和生活带来了…

数据结构历年考研真题对应知识点(树的基本概念)

目录 5.1树的基本概念 5.1.2基本术语 【森林中树的数量、边数和结点数的关系(2016)】 5.1.3树的性质 【树中结点数和度数的关系的应用(2010、2016)】 【指定结点数的三叉树的最小高度分析(2022)】 5.1…

[软件安装]Dev C++

一、下载Dev C软件安装包 1、官网下载官网 2、百度网盘下载压缩包 二、安装Dev C 1、解压Dev C软件安装包 2、找到【Dev-Cpp 5.11…】应用程序,右键选择【以管理员身份运行】它 3、设置语言 回到桌面,右键桌面上的【Dev C 5.11软件图标】&#xff0c…

什么是DEQ?

DEQ (Delivered Ex Quay, Duty Paid) 是指目的港码头交货 (……指定目的港)。 这种术语规定卖方在指定目的港码头将货物交给买方处置,并且不办理进口清关手续。 DEQ适用范围 DEQ术语仅适用于海运、内河运输或多式联运,并且在目的港码头卸货时使用。如…

探索人工智能和LLM对未来就业的影响

近年来,人工智能(AI)迅猛发展,引发了人们的兴奋,同时也引发了人们对就业未来的担忧。大型语言模型(LLM)就是最新的例子。这些强大的人工智能子集经过大量文本数据的训练,以理解和生成…

Python 面试【初级】

欢迎莅临我的博客 💝💝💝,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

安宝特方案 | AR术者培养:AR眼镜如何帮助医生从“看”到“做”?

每一种新药品的上市都需要通过大量的临床试验,而每一种新的手术工具在普及使用之前也需要经过反复的实践和验证。医疗器械公司都面临着这样的挑战:如何促使保守谨慎的医生从仅仅观察新工具在手术中的应用,转变为在实际手术中实操这项工具。安…

011、MongoDB副本集数据同步机制深度解析

目录 MongoDB副本集数据同步机制深度解析 1. 副本集架构概述 1.1 基本组成 1.2 节点角色 2. 数据同步过程详解 2.1 初始同步 2.2 持续复制 2.3 Oplog详解 3. 数据一致性与可用性 3.1 写关注(Write Concern) 3.2 读偏好(Read Preference) 3.3 因果一致性会话 4. 高…

IBCS 虚拟专线——企业网络困境的破局者

企业对于高效、稳定且成本合理的网络解决方案的需求愈发迫切。作为一家企业的技术负责人,我曾深陷于企业网络的种种困境之中,直到 IBCS 虚拟专线的出现,为我们带来了转机。 我们的企业在发展过程中,面临着诸多网络相关的挑战。随…

FPGA开发技能(7)Vivado设置bit文件加密

文章目录 前言1. AES加密原理2.xilinx的AES方案3.加密流程3.1生成加密的bit流3.2将密钥写入eFUSE寄存器 4.验证结论5.传送门 前言 在FPGA的项目发布的时候需要考虑项目工程加密的问题,一方面防止自己的心血被盗,另一方面也保护公司资产,保护知…

少女之妙,妙在微笑

一、妙与不妙,少女与微笑 我们曾经解过汉字“妙”,妙字可以拆分为少女二字,即: 妙 女 少 少女 但这,其实并没有对 “妙”字 完成完整性解析,如果要完成完整性的说明,应当加上微笑&#xff0…

Linux平台下RTSP|RTMP播放器如何跟python交互投递RGB数据供视觉算法分析

技术背景 我们在对接Linux平台RTSP播放模块的时候,遇到这样的技术需求,开发者需要把Linux RTSP播放器拉取的数据,除了实时播放外,还要投递给python,用于视觉算法分析。 技术实现 Linux平台RTSP、RTMP直接播放不再赘…

IDM下载器怎么用 IDM下载器使用技巧 idm下载器怎么下载网页视频

IDM总能让新用户们眼前一亮,它不仅是工作学习上的好帮手,更是帮你解锁信息世界的钥匙。下载全程无广告、无弹窗、畅享高速下载,这无疑是下载软件市场中的一股清流。有关IDM下载器怎么用,IDM下载器使用技巧的问题,本文将…

App Inventor 2 列表排序,函数式编程轻松实现高级排序算法

本文主要介绍 列表 的高级用法,即函数式编程,可以按照指定的逻辑进行列表的排序,而无需我们自己写代码实现排序功能。 指定的逻辑也包括很复杂的逻辑,也就是说如果你的排序逻辑很复杂,函数式编程就是最好的使用场景。…

Vue--》从零开始打造交互体验一流的电商平台(四)完结篇

今天开始使用 vue3 + ts 搭建一个电商项目平台,因为文章会将项目的每处代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的github上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关注本专栏,学习更多…

shiro漏洞利用记录

shiro漏洞利用记录 获取heapdump 访问http://39.100.119.172:8082/actuator/heapdump​下载heapdump nginx waf可能限制下载heapdump,但里面的配置可能是精确匹配,因此可以使用http://39.100.119.172:8082/actuator/heapdump//​来绕过 获取shrio ke…

Webpack: 构建 NPM Library

概述 虽然 Webpack 多数情况下被用于构建 Web 应用,但与 Rollup、Snowpack 等工具类似,Webpack 同样具有完备的构建 NPM 库的能力。与一般场景相比,构建 NPM 库时需要注意: 正确导出模块内容;不要将第三方包打包进产…

IDM(Internet Download Manager)下载器的安装激活与换机方法 IDM怎么用

很多人都知道 Internet Download Manager(以下简称 IDM)是一款非常优秀的下载提速软件。它功能强大,几乎能下载网页中的所有数据(包括视频、音频、图片等),且适用于现在市面上几乎所有的浏览器,非常受大家欢迎。IDM 是…