Java 四种访问修饰符+面向对象详解
作者:知我心·
本文介绍了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 实战口诀
- 属性先设
private:封装隐私,OOP 的基础(比如年龄、密码); - 对外接口用
public:让别人能和你的类交互(比如sayHi()、getAge()); - 同模块协作用
default:不用写关键字,同一文件夹的类互相调用(比如班级里的工具类); - 子类要继承用
protected:父类的功能只传给子类,不对外暴露(比如家族技能)。
到此这篇关于Java 四种访问修饰符的文章就介绍到这了,更多相关Java访问修饰符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
