发布时间:2026/6/23 19:59:41
Java入门第30课:封装、private、getter/setter
一、学习目标理解面向对象三大特性之一封装的含义与好处掌握 private 私有访问修饰符作用熟练编写 get、set 方法操作私有成员变量在 set 方法中增加数据合法性校验分清四种访问修饰符简单区别二、封装思想1. 为什么需要封装之前代码中成员变量直接暴露外部可以随意修改java运行Student s new Student(); s.age -50; // 年龄负数数据非法代码无法拦截封装核心隐藏对象内部细节仅对外提供安全访问入口。 实现思路使用private修饰成员变量外部无法直接访问提供公共 get/set 方法通过方法读写变量中间可校验数据2. 封装三大好处安全性在 set 方法校验数据过滤非法值代码复用读写逻辑统一放在方法多处调用不用重复写简化调用使用者不用关心内部实现只调用提供的方法三、private 关键字私有修饰符修饰成员变量、成员方法作用范围仅当前类内部可见其他类完全无法访问java运行public class Student { // 私有变量外部类不能直接 s.age private String name; private int age; }测试类直接访问会编译报错java运行public class Test { public static void main(String[] args) { Student s new Student(); s.age 18; // 报错age是private } }四、getter、setter 标准写法规则set 方法给变量赋值无返回值参数和变量类型一致 格式public void setXxx(类型 参数)get 方法获取变量值无参数返回值和变量类型一致 格式public 类型 getXxx()boolean 类型变量 get 方法推荐用isXxx()完整学生类示例java运行public class Student { // 私有成员变量 private String name; private int age; // name 的 set方法 public void setName(String name) { this.name name; } // name 的 get方法 public String getName() { return this.name; } // age 的 set方法增加数据校验 public void setAge(int age) { // 合法年龄 0~120 if (age 0 age 120) { this.age age; } else { System.out.println(年龄输入不合法赋值失败); this.age 0; } } // age 的 get方法 public int getAge() { return this.age; } // 展示信息方法 public void show() { System.out.println(姓名 name 年龄 age); } }测试类使用java运行public class TestStudent { public static void main(String[] args) { Student s new Student(); // 设置值 s.setName(小明); s.setAge(20); // 获取值 System.out.println(s.getName()); System.out.println(s.getAge()); s.show(); // 传入非法年龄 s.setAge(-10); System.out.println(s.getAge()); } }运行结果plaintext小明 20 姓名小明年龄20 年龄输入不合法赋值失败 0五、带构造方法 封装综合案例java运行public class Person { private String name; private int age; // 无参构造 public Person(){} // 有参构造 public Person(String name, int age) { this.name name; // 构造中赋值也调用set复用校验逻辑 setAge(age); } // get set public void setName(String name) { this.name name; } public String getName() { return name; } public void setAge(int age) { if(age 0 age 150){ this.age age; }else{ System.out.println(年龄非法); } } public int getAge() { return age; } public void info(){ System.out.println(name age 岁); } }六、四种访问修饰符简单认知本课拓展表格修饰符本类同包子类任意类private✅❌❌❌默认 (不写)✅✅❌❌protected✅✅✅❌public✅✅✅✅本课重点只用private和public。七、常见易错点私有变量直接用对象。变量访问 → 编译报错必须走 get/setset 方法忘记做数据校验失去封装安全意义get/set 方法大小写错误变量 age → setAge不是 setageboolean 类型变量private boolean sex; 推荐isSex()而非 getSex ()八、课堂练习定义手机类 Phone私有属性 brand 品牌、price 价格编写 get、set 方法价格不能小于 0小于 0 则提示价格非法创建对象通过 set 赋值get 打印信息九、课后作业定义 Dog 类私有 name 名字、int age、boolean isPet 宠物完善全套 get/setage 限制 0~20写有参构造调用 set 方法赋值编写 show 方法输出全部属性本课总结封装隐藏内部数据对外提供统一访问接口private 修饰变量外部无法直接访问setXxx 赋值可校验数据getXxx 获取值封装核心价值保护数据安全、统一控制逻辑

相关新闻

本科大数据应届生一线、二三线城市真实薪资
2026/6/23 19:59:41

本科大数据应届生一线、二三线城市真实薪资

选专业本质就是选未来的薪资上限与就业赛道。很多高三考生和家长在纠结大数据专业时,最关心的终极问题就是:本科大数据应届生,不同城市到底能拿多少工资?一线和二三线差距大吗?值不值得冲这个专业?网上薪资…

阅读更多
Mermaid Live Editor:告别拖拽式图表,用代码思维重塑可视化创作
2026/6/23 19:59:41

Mermaid Live Editor:告别拖拽式图表,用代码思维重塑可视化创作

Mermaid Live Editor:告别拖拽式图表,用代码思维重塑可视化创作 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me…

阅读更多
CVE-2021-41773 Apache HTTP Server 路径穿越与远程命令执行漏洞
2026/6/23 19:59:41

CVE-2021-41773 Apache HTTP Server 路径穿越与远程命令执行漏洞

漏洞信息项目内容CVE 编号CVE-2021-41773漏洞类型路径穿越 (Path Traversal) → 任意文件读取 / 远程命令执行 (RCE)影响组件Apache HTTP Server影响版本2.4.49 仅此版本(2.4.48 及之前不受此版本特有的路径穿越影响,2.4.50 修复)靶场版本Apa…

阅读更多
快充协议测试技术全解析:QC/PD/SCP/FCP,到底怎么测?
2026/6/23 20:59:41

快充协议测试技术全解析:QC/PD/SCP/FCP,到底怎么测?

前言2024年,100W以上快充已经成为旗舰手机的标配,200W以上也不再罕见。充电头企业、适配器代工厂面临的现实是:每款适配器出厂前,要验证QC、PD、SCP、FCP……七八种协议是否都能正确响应,一台台手测早就不现实了。本文…

阅读更多
性价比高的大理石高端工程公司
2026/6/23 20:59:41

性价比高的大理石高端工程公司

在高端工程项目中,大理石的选择往往决定了整体空间的格调和品质。无论是星级酒店的大堂、别墅的客厅,还是商业综合体的公共区域,天然大理石带来的质感和视觉冲击力,是其他材料难以替代的。然而,不少工程方在采购大理石…

阅读更多
5分钟搞定3DS游戏格式难题:3dsconv转换工具终极指南
2026/6/23 20:59:41

5分钟搞定3DS游戏格式难题:3dsconv转换工具终极指南

5分钟搞定3DS游戏格式难题:3dsconv转换工具终极指南 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv 你是否曾经…

阅读更多
Ai Three.js编辑器
2026/6/23 20:59:41

Ai Three.js编辑器

开发历程 低代码的开发是非常曲折的,尤其是早期根本没有任何参考作品或者 相关的一些知识博客去引领我们去做,会经历多次的推到再到重头再来,又需要开发者有很高的知识储备,举步维艰。,目前 web 二维 在市场上已经非常…

阅读更多
BetterNCM Installer II终极指南:3分钟快速安装网易云音乐插件管理器
2026/6/23 20:59:41

BetterNCM Installer II终极指南:3分钟快速安装网易云音乐插件管理器

BetterNCM Installer II终极指南:3分钟快速安装网易云音乐插件管理器 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM Installer II是一款专为网易云音乐PC客户端…

阅读更多
Java入门第30课:封装、private、getter/setter
2026/6/23 19:59:41

Java入门第30课:封装、private、getter/setter

一、学习目标理解面向对象三大特性之一:封装的含义与好处掌握 private 私有访问修饰符作用熟练编写 get、set 方法操作私有成员变量在 set 方法中增加数据合法性校验分清四种访问修饰符简单区别二、封装思想1. 为什么需要封装?之前代码中成员变量直接暴露…

阅读更多
嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南
2026/6/23 3:25:21

嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南

1. 项目概述与G.726 ADPCM技术背景在嵌入式语音处理领域,带宽和存储资源往往是寸土寸金的。如果你做过对讲机、VoIP网关或者早期的数字录音设备,一定对如何在有限的比特率下保住语音可懂度这件事深有感触。我当年接手一个车载调度系统的项目,…

阅读更多
ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性
2026/6/23 4:51:28

ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性

1. 项目概述与核心挑战在数字视频处理领域,将原始的视频数据、同步时序以及各种辅助信息打包成一个标准、稳定的串行数据流,是确保设备间互联互通的基础。ITU-R BT.656标准(常简称为ITU656)正是为此而生的一套“交通规则”。它定义…

阅读更多
嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南
2026/6/23 0:40:11

嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南

1. 项目概述与emWin核心价值解析在嵌入式系统开发领域,人机交互(HMI)的设计正从简单的LED指示灯和按键,快速向全彩图形化界面演进。无论是智能家电上的触摸屏、工业PLC的操作面板,还是医疗设备的参数显示,一…

阅读更多
3分钟快速上手:Qwen3大语言模型本地部署完全指南
2026/6/23 0:59:31

3分钟快速上手:Qwen3大语言模型本地部署完全指南

3分钟快速上手:Qwen3大语言模型本地部署完全指南 【免费下载链接】Qwen1.5 Qwen3 is the large language model series developed by Qwen team, Alibaba Cloud. 项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen1.5 阿里巴巴Qwen3大语言模型系列以其…

阅读更多
微信聊天记录备份指南:使用WeChatExporter轻松保存您的珍贵回忆
2026/6/23 0:59:31

微信聊天记录备份指南:使用WeChatExporter轻松保存您的珍贵回忆

微信聊天记录备份指南:使用WeChatExporter轻松保存您的珍贵回忆 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 在数字时代,微信聊天记录承载着我…

阅读更多
Cortex-M指令集深度解析:饱和运算、位域操作与分支控制实战
2026/6/23 0:59:31

Cortex-M指令集深度解析:饱和运算、位域操作与分支控制实战

1. 从指令到效率:为什么Cortex-M指令集值得深挖如果你在嵌入式领域摸爬滚打了一段时间,尤其是跟ARM Cortex-M系列单片机打交道,那你肯定对“写寄存器”、“调库函数”这套流程熟得不能再熟了。但不知道你有没有过这样的感觉:项目代…

阅读更多
GIT修改用户名
2026/6/23 8:19:27

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/22 10:07:50

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/23 6:37:14

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多