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详细…

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

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

乙级资质企业开展物理污染防治工程的设计规范

1. 国家和地方标准 乙级资质企业首先必须遵守国家和地方有关物理污染防治工程设计的各项标准和规范,包括但不限于: GB/T 36610-2018《环境影响评价技术导则 声环境》:用于指导噪声污染防治工程的设计。 GB 8702-2014《电磁环境控制限值》&…

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

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

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

目录 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…

全面指南:更改SQL Server端口后的用户通知策略

在企业环境中,出于安全或配置需求,可能需要更改SQL Server的默认端口。然而,一旦端口更改,所有依赖于旧端口的应用程序和用户都将受到影响。因此,确保所有用户和应用程序知晓并适应新的端口设置至关重要。本文将提供一…

python正在表达式.*与(.*)的区别

1、两者都能匹配任意长度任意字符(.匹配任意字符,*匹配任意长度); 2、(.*)会将匹配的结果以组的形式匹配到赋值的变量中; 3、(.*)括号中加上?可以实现非贪婪模式(.*?) 例子: file_name "387-(F_PG…

短剧小程序系统cps分销开发搭建

短剧小程序系统CPS分销开发搭建是一个相对复杂但具有广阔商业前景的过程。以下是关于短剧小程序系统CPS分销开发搭建的详细步骤和要点: 需求分析与市场调研: 深入了解市场需求、用户画像和竞品分析,明确产品定位和功能需求。研究目标用户的消…

什么是DEQ?

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

Swift Combine — Publisher和Subscriber的交互流程(自定义Publisher、Subscriber、Subscription)

之前的文章已经介绍过Publisher和Subscriber,对于概念类的东西这里就不多介绍了,在介绍Publisher和Subscriber的交互流程之前,先补充一下前面没有提到过的Subscription。 Subscription Subscription是一个协议,实现该协议的对象…

探索人工智能和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. 高…

python教程--基础语法

python基础语法 2.1 缩进规则2.2 函数函数定义函数调用参数传递示例 2.3 类类的定义类的实例化类的属性和方法访问示例 2.4 顺序语句结构示例 2.5 条件和分支条件语句的基本结构示例单个 if 语句嵌套条件语句 2.6 循环For 循环While 循环循环控制语句 2.7 数据类型数字类型序列…

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

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

第一百三十一节 Java面向对象设计 - Java对注释类型的限制

Java面向对象设计 - Java对注释类型的限制 注释类型的限制 注释类型不能从另一个注释类型继承。 每个注释类型都隐式地继承java.lang.annotation.Annotation接口,其声明如下: package java.lang.annotation;public interface Annotation { boolea…

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

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

少女之妙,妙在微笑

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