能力缺口与适用基础

这门课解决的核心问题,是让只会写顺序、分支、循环的初学者,真正建立起类型设计思维,而不是停留在把一堆变量扔进主方法里跑通就行的阶段。如果你写代码时经常把所有逻辑塞进一个类、一个方法,遇到稍微复杂的数据关系就脑子发懵,或者背过封装、构造方法的概念却不知道为什么要这么写,那说明你的能力缺口就在这里。它适合已经掌握 Java 基本语法、能写简单控制流但没有真正用过自定义类的人。如果你连基本数据类型和 if 判断都不熟,建议先补语法再看。这阶段别假装自己懂面向对象,能跑通代码和知道内存里发生了什么完全是两码事。

建议先看的模块与练习配合

拿到资料后,别从头到尾按顺序点。建议先看类与对象的定义及基本使用,紧接着死磕对象内存分析与引用传递初步这两块。很多人写 Java 写了好几年还搞不清基本类型和引用类型在内存里的区别,根源就是刚学面向对象时跳过了内存分析。看完这几块,立刻去补封装性和构造方法,然后跟着综合实战那节自己敲一遍简单 Java 类。数组部分可以作为巩固引用传递的练习场,重点看数组的引用分析,搞清楚数组变量到底存的是什么。练习时不要只看视频,准备一个编辑器,每看完一节就自己写测试类验证:实例化两个对象互相赋值,打印字段值变化,画出栈和堆的草图。资料里的目录线索只用来帮你定位知识点,别把它当播放列表刷完就算学过。

学完能独立做什么

学完之后,你应该能独立完成这样的事:拿到一个简单的现实需求,比如描述一本书、一个员工,能自己设计出类,定义私有字段,写出 getter 和 setter,用构造方法完成初始化,而不是把所有属性公开暴露。你应该能在纸上画出几行代码执行后的内存结构,说清楚哪个变量指向哪个堆内存,引用传递时到底传了什么。当别人问你为什么属性要私有、为什么要提供构造方法、匿名对象用在什么场景,你能用自己的话讲明白而不是背概念。如果学完还只能说一句面向对象就是封装继承多态,那等于没学。这阶段的目标不是写多大项目,而是把每一个基础概念踩实,后面学集合框架、甚至看源码时才不会因为底层引用逻辑发虚而反复回头补课。

课程目录

1-1 [Java8面向对象编程] 面向对象简介 (17:41)
1-2 [Java8面向对象编程] 类与对象的定义 (08:27)
1-3 [Java8面向对象编程] 类与对象的基本使用 (09:42)
1-4 [Java8面向对象编程] 对象内存分析 (25:12)
1-5 [Java8面向对象编程] 引用传递初步 (17:54)
2-1 [深入分析类与对象] 封装性 (16:18)
2-2 [深入分析类与对象] 构造方法与匿名对象 (30:48)
2-3 [深入分析类与对象] 综合实战:简单Java类 (13:36)
3-1 [数组的定义及使用] 数组的基本概念 (13:21)
3-2 [数组的定义及使用] 数组的引用分析 (12:27)
3-3 [数组的定义及使用] 数组的静态初始化 (13:01)
3-4 [数组的定义及使用] 二维数组 (16:37)
3-5 [数组的定义及使用] 数组与方法的引用操作 (48:20)
3-6 [数组的定义及使用] 数组相关操作方法 (06:28)
3-7 [数组的定义及使用] 对象数组 (12:49)
4-1 [剖析String类] String类对象的两种实例化方式 (05:10)
4-2 [剖析String类] 字符串比较 (11:35)
4-3 [剖析String类] String类匿名对象 (08:55)
4-4 [剖析String类] String类对象两种实例化方式比较 (19:55)
4-5 [剖析String类] 字符串修改分析 (08:32)
5-1 [String类常用方法] Java Doc文档简介 (08:21)
5-2 [String类常用方法] 字符与字符串 (13:54)
5-3 [String类常用方法] 字节与字符串 (05:11)
5-4 [String类常用方法] 字符串比较 (08:00)
5-5 [String类常用方法] 字符串查找 (10:53)
5-6 [String类常用方法] 字符串截取 (03:17)
5-7 [String类常用方法] 字符串替换 (03:02)
5-8 [String类常用方法] 字符串拆分 (06:41)
5-9 [String类常用方法] 其它操作方法 (13:29)
6-1 [this关键字] 调用本类属性 (10:33)
6-2 [this关键字] 调用本类方法 (20:40)
7-1 [引用传递分析实例] 引用传递进阶分析 (23:46)
7-2 [引用传递分析实例] 对象比较 (15:44)
7-3 [引用传递分析实例] 引用传递实际应用 (26:06)
8-1 [static关键字] 声明static属性 (20:50)
8-2 [static关键字] 声明static方法 (13:35)
8-3 [static关键字] 分析主方法 (11:29)
8-4 [static关键字] static应用案例 (07:27)
9-1 [代码块] 普通代码块 (05:48)
9-2 [代码块] 构造代码块 (03:08)
9-3 [代码块] 静态代码块 (07:21)
10-1 [内部类] 内部类基本概念 (24:32)
10-2 [内部类] static定义内部类 (06:25)
10-3 [内部类] 方法中定义内部类 (08:53)
11-1 [综合实战:简单Java类深入] 综合实战:数据表与简单Java类映射 (20:54)
11-2 [综合实战:简单Java类深入] 综合实战:一对多映射(类型-子类型) (09:28)
11-3 [综合实战:简单Java类深入] 综合实战:双向一对多映射(用户-课程-考试成绩) (21:28)
11-4 [综合实战:简单Java类深入] 综合实战:多对多映射(管理员-角色-组-权限) (29:45)
12-1 [继承性] 继承问题的引出 (07:17)
12-2 [继承性] 继承的实现 (08:09)
12-3 [继承性] 继承的限制 (27:29)
13-1 [覆写] 方法覆写 (27:08)
13-2 [覆写] 属性覆盖 (06:02)
14-1 [综合案例:数组操作] 综合案例:数组操作(基础父类) (16:24)
14-2 [综合案例:数组操作] 综合案例:数组操作(排序子类) (05:48)
14-3 [综合案例:数组操作] 综合案例:数组操作(反转子类) (05:14)
15-1 [设计辅助概念] final关键字 (08:34)
15-2 [设计辅助概念] 对象多态性 (38:29)
16-1 [抽象类] 抽象类基本概念 (14:46)
16-2 [抽象类] 抽象类基本概念 (14:46)
16-3 [抽象类] 抽象类的相关说明 (17:26)
16-4 [抽象类] 模板设计模式 (20:08)
17-1 [接口] 接口基本定义 (27:35)
17-2 [接口] 使用接口定义标准 (16:54)
17-3 [接口] 工厂设计模式 (13:55)
17-4 [接口] 代理设计模式 (14:20)
17-5 [接口] 抽象类与接口区别 (17:17)
18-1 [Object类] Object类的基本概念 (10:22)
18-2 [Object类] toString()方法 (05:08)
18-3 [Object类] equals()方法 (05:02)
18-4 [Object类] 接收引用类型 (08:36)
19-1 [扩展概念] 匿名内部类 (08:18)
19-2 [扩展概念] 包装类实现原理分析 (12:19)
19-3 [扩展概念] 装箱与拆箱 (09:03)
19-4 [扩展概念] 数据类型转换 (15:48)
20-1 [链表的定义与使用] 链表基本概念 (22:45)
20-2 [链表的定义与使用] 链表基本实现 (19:45)
20-3 [链表的定义与使用] 可用链表 —— 程序结构设计 (06:55)
20-4 [链表的定义与使用] 可用链表 —— 增加数据 (04:21)
20-5 [链表的定义与使用] 可用链表 —— 取得链表长度 (04:51)
20-6 [链表的定义与使用] 可用链表 —— 判断空链表 (02:50)
20-7 [链表的定义与使用] 可用链表 —— 数据内容查询 (10:03)
20-8 [链表的定义与使用] 可用链表 —— 根据索引取得数据 (11:24)
20-9 [链表的定义与使用] 可用链表 —— 修改链表数据 (06:21)
20-10 [链表的定义与使用] 可用链表 —— 删除链表数据 (12:21)
20-11 [链表的定义与使用] 可用链表 —— 清空链表数据 (02:47)
20-12 [链表的定义与使用] 可用链表 —— 对象数组转换 (09:13)
20-13 [链表的定义与使用] 综合实战:图书大厦 (24:11)
21-1 [包的定义及使用] 包的定义 (10:50)
21-2 [包的定义及使用] 包的导入 (20:26)
21-3 [包的定义及使用] 系统常用包 (14:40)
21-4 [包的定义及使用] 生成jar文件 (12:21)
22-1 [访问控制权限] 访问控制权限 (09:15)
22-2 [访问控制权限] Java命名规范 (02:21)
23-1 [单例设计模式] 单例设计模式分析 (21:17)
23-2 [单例设计模式] 多例设计模式分析 (04:43)
24-1 [异常的捕获及处理] 认识异常 (06:24)
24-2 [异常的捕获及处理] 处理异常 (06:29)
24-3 [异常的捕获及处理] 处理多个异常 (06:44)
24-4 [异常的捕获及处理] 异常处理流程 (22:24)
24-5 [异常的捕获及处理] throws关键字 (08:58)
24-6 [异常的捕获及处理] 异常处理模型 (05:49)
24-7 [异常的捕获及处理] 异常处理模型 (10:33)
24-8 [异常的捕获及处理] RuntimeException类 (08:04)
24-9 [异常的捕获及处理] 断言 (05:39)
24-10 [异常的捕获及处理] 自定义异常类 (05:37)
25-1 [类图描述] 类图 (18:34)
25-2 [类图描述] 时序图 (06:45)
25-3 [类图描述] 用例图 (06:45)
26-1 [Eclipse开发工具] Eclipse简介 (21:56)
26-2 [Eclipse开发工具] 使用JDT开发Java程序 (33:47)
26-3 [Eclipse开发工具] junit测试工具 (09:51)
27-1 [Java5新特性] 可变参数 (10:31)
27-2 [Java5新特性] foreach循环 (06:04)
27-3 [Java5新特性] 静态导入 (06:26)
28-1 [泛型] 泛型问题引出 (24:51)
28-2 [泛型] 通配符 (16:28)
28-3 [泛型] 泛型接口 (05:00)
28-4 [泛型] 泛型方法 (04:29)
29-1 [Annotation] 多例设计模式与枚举 (09:45)
29-2 [Annotation] Enum与enum (08:30)
29-3 [Annotation] 枚举结构定义 (09:32)
29-4 [Annotation] 枚举应用 (03:57)
30-1 [Java8新特性] Annotation简介 (10:59)
30-2 [Java8新特性] 准确覆写 (04:02)
30-3 [Java8新特性] 过期声明 (03:25)
30-4 [Java8新特性] 压制警告 (03:44)
31-1 [Java8新特性] 接口定义增强 (12:37)
31-2 [Java8新特性] Lamda表达式 (17:50)
31-3 [Java8新特性] 方法引用 (17:53)
31-4 [Java8新特性] 内建函数式接口 (15:58)