0

0

java访问控制关键字是什么?如何用?

舞姬之光

舞姬之光

发布时间:2025-12-17 13:56:33

|

368人浏览过

|

来源于php中文网

原创

Java访问控制关键字共四个:public、protected、default(包级私有)、private;分别控制成员在任意位置、同包及子类、同包、仅本类内的访问权限。

java访问控制关键字是什么?如何用?

Java访问控制关键字是用来限制类、方法、变量等成员的可见范围和访问权限的修饰符,共四个:publicprotecteddefault(包级私有,不写关键字)private。它们决定了谁能在什么范围内访问这些成员。

public:完全公开,任何地方都能访问

public 修饰的类、方法或字段,可以在任意类中被访问,只要该类可被导入(public 类需与文件同名)。

  • 类只能用 public 或 default 修饰;public 类必须和文件名一致
  • 接口中的方法默认是 public abstract,字段默认是 public static final
  • 示例:public class Utils { public static void log(String s) { ... } } → 其他包也能调用 Utils.log("hello")

protected:子类 + 同包可访问

protected 主要用于继承场景。它允许:同一包内的所有类访问;不同包中的子类通过继承访问(但不能通过父类引用直接访问)。

  • 不能修饰外部类(只能修饰成员变量、方法、内部类)
  • 子类重写 protected 方法时,访问级别不能更严格(比如不能改成 private)
  • 示例:protected int id; → 子类可直接用 this.id,但 new Parent().id 在不同包中会编译失败

default(包级私有):仅限同一个包内访问

不加任何访问修饰符就是 default。它比 protected 更保守,不支持跨包继承访问,只认“包”这层关系。

MusicLM
MusicLM

谷歌平台的AI作曲工具,用文字生成音乐

下载

立即学习Java免费学习笔记(深入)”;

  • 适合封装内部实现细节,比如工具类的辅助方法、包内共享的常量
  • 接口中 default 方法是另一回事(Java 8 引入的默认实现),和访问控制的 default 无关,别混淆
  • 示例:void helper() { ... } → 只有同包下的类能调用

private:最严格,仅本类内部可用

private 是最强封装手段,用来隐藏实现细节、保护数据安全,比如字段通常设为 private,配以 public 的 getter/setter 控制读写逻辑。

  • 不能修饰类(外部类),但可以修饰内部类、方法、字段、构造器
  • 子类无法继承 private 成员,也不能重写或直接访问
  • 示例:private String password; → 外部连读都不行,必须靠 getPassword()(且可在其中加校验逻辑)

基本上就这些。选哪个关键字,核心看设计意图:要不要被继承?要不要被其他包用?要不要被外部修改?想清楚这三点,选择就不难了。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1051

2023.08.02

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1570

2023.10.24

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1051

2023.08.02

int占多少字节
int占多少字节

int占4个字节,意味着一个int变量可以存储范围在-2,147,483,648到2,147,483,647之间的整数值,在某些情况下也可能是2个字节或8个字节,int是一种常用的数据类型,用于表示整数,需要根据具体情况选择合适的数据类型,以确保程序的正确性和性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

617

2024.08.29

c++怎么把double转成int
c++怎么把double转成int

本专题整合了 c++ double相关教程,阅读专题下面的文章了解更多详细内容。

335

2025.08.29

C++中int的含义
C++中int的含义

本专题整合了C++中int相关内容,阅读专题下面的文章了解更多详细内容。

235

2025.08.29

javascriptvoid(o)怎么解决
javascriptvoid(o)怎么解决

javascriptvoid(o)的解决办法:1、检查语法错误;2、确保正确的执行环境;3、检查其他代码的冲突;4、使用事件委托;5、使用其他绑定方式;6、检查外部资源等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

188

2023.11.23

java中void的含义
java中void的含义

本专题整合了Java中void的相关内容,阅读专题下面的文章了解更多详细内容。

135

2025.11.27

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

69

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 4.5万人学习

C# 教程
C# 教程

共94课时 | 11.4万人学习

Java 教程
Java 教程

共578课时 | 82.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号