缺什么补什么:别让对象停留在概念里

这份资料聚焦的是 JavaSE 中级阶段的核心:面向对象编程的落地。很多转岗或自学的开发者,能写出基本的语法和循环,但一遇到真实项目就卡壳,根本原因在于缺乏把业务需求翻译成类和对象的能力。如果你目前只会写 main 方法里的顺序代码,对成员变量、局部变量的作用域划分不清,或者知道面向对象有封装、继承、多态三大特性,却无法在项目里画出合理的类图,那么这门课正好补这块短板。它不跟你空谈理论,而是直接从软件开发流程切入,用收银项目和宠物领养这两个具体场景,逼着你把现实中的业务实体抽象成代码里的类。建议先看开课前准备里的环境搭建和语法回顾,快速校准基础,随后直接进入抽象和封装模块,重点啃构造方法、方法重载和 static 关键字。

资料配合练习:从看懂到敲通

这套视频资料最大的价值在于它的断点分析教学。很多初学者写完类后,根本不知道程序在内存里是怎么跑的。资料里专门安排了类的断点分析讲解,你必须跟着视频一步步打断点,观察对象的实例化过程和属性赋值时机。在看资料时,不要只用眼睛过一遍代码,必须打开编辑器同步敲写。特别是收银项目分析和用户数据封装这一节,你要自己先尝试把用户信息抽离成一个独立的类,把属性私有化,然后编写对应的构造方法和访问器。看完领养宠物的分析后,合上视频,自己从零写一个类似的业务场景,比如图书借阅或者车辆入库,强制自己运用封装思想去设计类结构,用 static 去统计实例化的对象总数。

看完应能独立回答的几个问题

  • 给定一个收银系统的需求,你能独立拆分出哪些实体类?每个类里应该包含哪些属性和方法?
  • 构造方法和普通实例方法在调用时机和内存分配上有什么本质区别?方法重载在项目里到底为了解决什么代码冗余问题?
  • 当一个类中存在 static 修饰的变量时,它和实例变量在生命周期和访问方式上有什么不同?在断点调试时,你怎么观察 static 变量的加载和赋值节点?
  • 封装的具体步骤是什么?如果不使用 private 关键字封装属性,在多人协作的收银项目中会引发什么具体的业务数据越界风险?

课程目录

1-1 [开课前准备] 开发前准备—svn项目同步 (27:20)
1-2 [开课前准备] java回顾-jdk环境搭建要点讲解 (08:00)
1-3 [开课前准备] 变量、数据类型和条件结构回顾 (24:43)
1-4 [开课前准备] 月份天数的判断实现和循环结构的简单回顾 (30:08)
1-5 [开课前准备] 数组、对象和类的简单回顾 (36:26)
1-6 [开课前准备] 软件开发流程和收银项目简介 (15:25)
1-7 [开课前准备] 收银项目分析和用户数据的封装 (39:48)
2-1 [抽象和封装] 类的简单封装 (37:38)
2-2 [抽象和封装] 构造方法的讲解 (29:19)
2-3 [抽象和封装] 类的断点分析和重载的讲解 (07:44)
2-4 [抽象和封装] 实现领养宠物的分析和讲解 (33:17)
2-5 [抽象和封装] static关键字、封装的步骤及其实现 (56:19)
2-6 [抽象和封装] 类的封装和设计类图 (21:29)
2-7 [抽象和封装] 通过类的封装升级领养宠物样例 (32:40)
3-1 [继承] 继承的基本概念和简单实现 (42:47)
3-2 [继承] 继承概念再精讲 (38:00)
3-3 [继承] 抽象类的概念和简单实现 (21:40)
3-4 [继承] final关键字和收取单个车辆租金的样例实现 (01:22:45)
3-5 [继承] 对收取单个车辆租金的样例代码进行思路分析和添加必要的注释 (23:52)
3-6 [继承] 对收取多个车辆租金的进行实现1 (01:08:19)
3-7 [继承] 对收取多个车辆租金的进行实现2 (20:02)
3-8 [继承] 根据面向对象实现对多个车辆租金进行计算的部分代码 (45:00)
3-9 [继承] 根据面向对象实现对多个车辆租金进行计算的代码实现2 (43:05)
4-1 [多态] 多态下喂食宠物的代码实现 (49:48)
4-2 [多态] 多态下同一喂食宠物方法-使用父类作为方法形参实现多态 (12:52)
4-3 [多态] 多态-领养宠物-使用父类作为方法返回值实现多态 (29:16)
4-4 [多态] 多态-父类到子类的转换和instanceof运算符 (21:00)
4-5 [多态] 多态-计算租金类的结构分析和编写代码的思路引导 (22:40)
4-6 [多态] 多态-计算租金代码的填充和测试类的实现 (28:14)
4-7 [多态] 多态-计算租金测试类的排错和sysout及断点调试 (28:25)
5-1 [接口] 接口-接口概念及其简单实现 (39:45)
5-2 [接口] 接口-接口封装实例 (51:46)
6-1 [异常] 异常-异常基本概念和运行机制 (37:47)
6-2 [异常] 异常-抛出异常的处理及其实现 (43:08)
6-3 [异常] 异常-自定义异常及其实现 (32:29)
6-4 [异常] 异常-异常作业及其参考实现 (21:50)
7-1 [包装类和其他常用类] 包装类、作用域和StringBuffer样例讲解 (01:02:09)
7-2 [包装类和其他常用类] String和StringBuffer性能比较和日期类样例讲 (49:24)
7-3 [包装类和其他常用类] Math类、Random类和正则表达式 (01:37:23)
8-1 [java集合类] Java集合类-list列表示例及讲解 (01:37:23)
8-2 [java集合类] Java集合类-set集示例及讲解 (01:00:33)
8-3 [java集合类] Java集合类-map示例及讲解 (38:20)
8-4 [java集合类] Java集合类-Collections示例及讲解 (17:53)
8-5 [java集合类] Java集合类-Map作业的代码实现 (23:18)
9-1 [泛型和内部类] 泛型基本原理和简单示例 (29:00)
9-2 [泛型和内部类] 内部类概念和习题讲解 (01:09:11)
10-1 [Java IO] java IO-file类和字节流outputStream讲 (46:38)
10-2 [Java IO] java IO-file类和字节流inputStream讲解 (29:43)
10-3 [Java IO] java IO-file类和字节流作业讲解 (40:34)
10-4 [Java IO] java IO-file类和字符流Writer与Reader (29:00)
10-5 [Java IO] java IO-file类和字符流作业讲解 (01:06:23)
10-6 [Java IO] java IO-数据操作流、合并流、压缩流简单介绍 (29:04)
11-1 [java技能扩展] java排行、下载及官方教程、demo、sample简单说明 (40:12)
12-1 [阶段项目] 阶段项目-项目整体安排和验收说明 (27:11)
12-2 [阶段项目] 阶段项目-项目设计和搭建实例引导 (33:50)
12-3 [阶段项目] 阶段项目-项目设计和文档提交引导 (33:21)
12-4 [阶段项目] 阶段项目-项目模块设计实现引导 (19:05)
12-5 [阶段项目] 阶段项目-项目模块设计实现再引导 (36:54)
12-6 [阶段项目] 阶段项目-项目业务实现引导 (56:08)
12-7 [阶段项目] 阶段项目-部分小组阶段项目演示 (31:06)
12-8 [阶段项目] 阶段项目-项目答辩安排和验收要求讲解 (24:47)
12-9 [阶段项目] 阶段项目-小组项目提交情况点评 (35:31)