Java中的public,private,protect,默认这几个访问修饰符的范围和概念

news/2024/11/29 11:51:02/

在Java中,publicprivateprotected是访问修饰符,它们决定了类、方法或变量的访问级别。这些访问修饰符有助于实现封装,这是面向对象编程的四大基本特性之一。

  1. public:这是最高级别的访问修饰符。被public修饰的类、方法或变量可以被任何其他类访问。
java">public class PublicExample {public int publicVar = 10;public void publicMethod() {System.out.println("This is a public method.");}
}

在上面的代码中,PublicExample类、publicVar变量和publicMethod方法都可以被其他任何类访问。

  1. private:这是最低级别的访问修饰符。被private修饰的类、方法或变量只能在其所在的类内部被访问。
java">public class PrivateExample {private int privateVar = 20;private void privateMethod() {System.out.println("This is a private method.");}public void accessPrivate() {System.out.println(privateVar); // 可以访问privateMethod(); // 可以访问}
}

在上面的代码中,privateVar变量和privateMethod方法只能在PrivateExample类内部被访问。尽管accessPrivate方法可以访问它们,但其他类不能直接访问。

  1. protected:这是介于publicprivate之间的访问修饰符。被protected修饰的类、方法或变量可以在其所在的类内部以及同一个包内的其他类中被访问,也可以被其他包中的子类访问。
java">package package1;public class ProtectedExample {protected int protectedVar = 30;protected void protectedMethod() {System.out.println("This is a protected method.");}
}package package2;import package1.ProtectedExample;public class AnotherClass extends ProtectedExample {public void accessProtected() {System.out.println(protectedVar); // 可以访问protectedMethod(); // 可以访问}
}

在上面的代码中,ProtectedExample类在package1包中,而AnotherClass类在package2包中,并且AnotherClassProtectedExample的子类。因此,AnotherClass可以访问ProtectedExample中的protectedVar变量和protectedMethod方法。

注意:类本身不能是privateprotected的,它们只能是public或默认的(没有明确的访问修饰符)。默认的访问级别意味着类只能在其所在的包内被访问。


http://www.ppmy.cn/news/1446193.html

相关文章

c# ?? 、?.、??=、?[]运算符的使用

在 C# 中存在一些特殊的运算符,它们简化了代码的编写,主要用于处理空值(null)或简化成员访问。以下是一些常用的这类运算符: ?? - Null 合并运算符 Null 合并运算符 ?? 在左侧的操作数不为 null 时返回左侧的操作…

java 密码SHA-2加密,springboot-bcrypt加密

原理底层啥的就不说了,小白的我只注重使用 SHA-2加密 // 生成随机盐public static String generateSalt() {SecureRandom random new SecureRandom();byte[] salt new byte[16];random.nextBytes(salt);return Base64.getEncoder().encodeToString(salt);}// 哈希…

JS从入门到精通

1.JS概述 window.sessionStorage.setItem("flag", flag);原生JS也可以存SessionStorage 尚硅谷的视频教程: 不用在服务端,在客户端就验证了。 解释型VS编译型;事件驱动;客户端的脚本语言;脚本语言&#xff0…

【酱浦菌-爬虫项目】爬取学术堂论文信息

1. 首先,代码定义了一个名为 url 的变量,它是一个包含三个网址的集合(或者说是一个集合的字典)。这些网址分别是: - ‘http://www.xueshut.com/lwtimu/127966.html’ - ‘http://www.xueshut.com/lwtimu/12…

2024.4.29 —— LeetCode 高频题复盘

目录 56. 合并区间124. 二叉树中的最大路径和19. 删除链表的倒数第 N 个结点72. 编辑距离93. 复原 IP 地址1143. 最长公共子序列94. 二叉树的中序遍历82. 删除排序链表中的重复元素 II704. 二分查找199. 二叉树的右视图 56. 合并区间 题目链接 class Solution:def merge(self,…

物联网应用技术综合实训室解决方案

一、背景 随着物联网技术的快速发展和广泛应用,物联网产业已经成为新的经济增长点,对于推动产业升级、提高社会信息化水平具有重要意义。因此,培养具备物联网技术应用能力的高素质人才成为了迫切需求。 传统的教育模式往往注重理论教学&…

老机安装sw2024出现ig9icd64:0002db62错误问题

C:\Windows\System32\DriverStore\FileRepository\igdlh64.inf_amd64_7be3d75c5adc8917 1。查找ig9icd64.dll,发现在C:\Windows\System32\DriverStore\FileRepository目录下有5个, 分别是不同年份的,试着替换了一下,发现不行&am…

前后端分离实践:使用 React 和 Express 搭建完整登录注册流程

文章目录 概要整体架构流程技术名词解释ReactExpressReact RouterAnt Design 技术细节前端设计后端逻辑数据交互 小结 概要 本项目是一个基于React和Express的简单登录注册系统。通过前后端分离的方式,实现了用户的注册、登录和查看用户列表等功能。前端使用React框…