Java 四种访问修饰符+面向对象详解

 更新时间:2026年01月30日 09:49:00   作者:知我心·  
本文介绍了Java中的四种访问修饰符(private, default, protected, public)及其在面向对象编程(OOP)中的作用,包括封装、继承和多态,通过对比OOP中的术语和访问修饰符的使用,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

一、先明确核心

OOP 和访问权限的关系:

面向对象的核心是「把现实世界的事物抽象成 “类”,通过类创建 “对象”」,而访问权限修饰符的作用是:

  • 实现封装:把对象的 “隐私数据” 藏起来(比如人的银行卡密码),只暴露必要的 “对外接口”(比如查询余额的方法),避免数据被乱改;
  • 配合继承:控制子类能访问父类的哪些资源(比如父类的家族秘密,子类能继承,外人不能碰);
  • 规范多态:确保子类重写的方法,权限不会比父类更严格(比如父类是public方法,子类不能改成private)。

而默认权限(default) 是 OOP 中 “中等封装” 的体现 —— 只对 “自己人”(同包类)开放,对外隐藏,刚好适配 “同一模块内协作” 的场景。

二、四种修饰符 + 面向对象

我们用「“人” 这个类」作为例子,结合 OOP 的封装、继承,逐个讲清楚每种修饰符(包括默认)的作用:

1.private(私有)

OOP 封装的核心:藏起隐私

  • OOP 意义:最严格的封装,把对象的 “核心隐私” 只留给自己,完全不对外暴露,避免被误改。
  • 小白场景:每个人的「银行卡密码」,只能自己知道、自己操作,哪怕是家人(同包类)、孩子(子类)也不能直接看。
  • 代码例子:

  • 关键:OOP 的封装不是 “藏起来不让用”,而是 “通过可控接口用”,private就是实现这个的核心。

2.default(默认,无关键字)

 OOP 的 “模块内封装”:只对自己人开放

  • OOP 意义:中等封装,只对 “同一模块(同包)” 的类开放,不同模块(不同包)隐藏,适合模块内协作(比如一个 “学生管理模块” 里的类互相调用)。
  • 小白场景:每个人的「班级群聊消息」,只有同班同学(同包类)能看、能回复,隔壁班(不同包)的人看不到。
  • 代码例子(结合 OOP)

  • 关键:OOP 中很多 “辅助类” 不需要对外暴露,用default刚好能实现 “模块内复用,模块外隐藏”,避免接口混乱。

3.protected(受保护)

OOP 继承的 “权限传递”:只给子类开放

  • OOP 意义:配合继承,父类的protected成员能被子类访问(哪怕不同包),但对外人隐藏,实现 “家族技能传承”。
  • 小白场景:父亲的「修自行车技巧」,只能传给儿子(子类),外人(不同包非子类)不能学,但儿子哪怕搬到外地(不同包),也能继承这个技巧。
  • 代码例子:

  • 关键:OOP 的继承不是 “全盘继承”,protected精准控制了 “该传的传,不该传的不传”,既传承了功能,又保护了隐私。

4.public(公共)

OOP 的 “对外接口”:所有人都能访问

  • OOP 意义:无封装限制,对外暴露公共接口,让所有对象都能使用,是类与外界交互的 “窗口”。
  • 小白场景:每个人的「打招呼功能」,不管认识不认识(任何类),都能和你打招呼、你也能回应。
  • 代码例子:

  • 关键:OOP 的类需要和外界交互,public就是交互的 “桥梁”,但不能把所有成员都设为public(否则就没封装了)。

三、访问修饰符 + 面向对象对照表

1.、关键术语 + OOP 对应

术语小白翻译OOP中的作用
封装把隐私藏起来,只暴露必要接口通过private/default/protected实现,保护数据安全
继承子类拿父类的属性和方法protected控制 “子类能拿什么”,private子类拿不到
多态子类重写父类方法,表现不同行为子类重写的方法,权限不能比父类严(比如父类public,子类不能是default
现实事物的抽象模板(比如 “人”)访问修饰符修饰类,控制哪个包能使用这个模板
对象模板创建的具体实例(比如 “李四”)访问修饰符修饰对象的属性 / 方法,控制谁能操作这个实例
存放类的 “模块文件夹”default权限的核心:只对同文件夹(同包)开放
默认权限无关键字修饰OOP 的 “模块内封装”,适合同一模块内类协作

2.四种修饰符 + OOP 总结表

修饰符核心权限OOP核心作用小白场景
private仅当前类封装核心隐私银行卡密码
default仅同包类模块内封装(同模块协作)班级群消息
protected自己 + 同包 + 不同包子类继承时传递权限父亲传修自行车技巧
public所有人对外暴露接口(类与外界交互)打招呼功能

3.OOP 实战口诀

  1. 属性先设private:封装隐私,OOP 的基础(比如年龄、密码);
  2. 对外接口用public:让别人能和你的类交互(比如sayHi()getAge());
  3. 同模块协作用default:不用写关键字,同一文件夹的类互相调用(比如班级里的工具类);
  4. 子类要继承用protected:父类的功能只传给子类,不对外暴露(比如家族技能)。

到此这篇关于Java 四种访问修饰符的文章就介绍到这了,更多相关Java访问修饰符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现自定义语言和表达式解析的解释器模式

    Java实现自定义语言和表达式解析的解释器模式

    Java解释器设计模式通过解析自定义语言和表达式,实现对复杂逻辑的处理,提高程序可扩展性和灵活性。它将语法解析和执行过程分离,通过抽象语法树和解释器实现对语言和表达式的解析和求值,避免了硬编码和复杂的条件判断,提高了程序的可读性和可维护性
    2023-04-04
  • Java中抽象类和接口的用法详解

    Java中抽象类和接口的用法详解

    这篇文章主要为大家详细介绍了Java中抽象类和接口的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-08-08
  • java图片缩放实现图片填充整个屏幕

    java图片缩放实现图片填充整个屏幕

    这篇文章主要介绍了java图片缩放实现图片填充整个屏幕,本文提供了两种解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Mybatis使用useGeneratedKeys获取自增主键

    Mybatis使用useGeneratedKeys获取自增主键

    这篇文章主要为大家介绍了Mybatis使用useGeneratedKeys获取自增主键示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Java输入输出语句举例详解(通俗易懂!)

    Java输入输出语句举例详解(通俗易懂!)

    这篇文章主要给大家介绍了关于Java输入输出语句的相关资料,作为一种常用的编程语言,Java提供了多种输入输出的方式,用于与用户进行数据交互或处理文件数据,需要的朋友可以参考下
    2023-10-10
  • SpringBoot自动装配注解的实现示例

    SpringBoot自动装配注解的实现示例

    本文主要介绍了SpringBoot自动装配注解的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-04-04
  • IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

    IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署

    这篇文章主要介绍了IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署,本文图文实例相结合给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09
  • Java中避免NullPointerException的方法总结

    Java中避免NullPointerException的方法总结

    这篇文章主要介绍了Java中避免NullPointerException的方法总结的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java配置win10环境变量过程图解

    Java配置win10环境变量过程图解

    这篇文章主要介绍了Java配置win10环境变量过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java 如何调用long的最大值和最小值

    Java 如何调用long的最大值和最小值

    这篇文章主要介绍了Java 如何调用long的最大值和最小值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论