**Java面向对象编程独立导读**
欢迎进入《Java面向对象编程》课程的学习。作为Java语言的核心基石,面向对象(OOP)不仅是编程思维的转变,更是从“面向过程”走向“工程化开发”的关键一步。本课程基于Java 8标准,由浅入深地拆解类、对象、数组及String类,旨在帮助你构建扎实的底层认知,而非仅停留在语法表面。
**一、 核心理念:从对象到内存**
课程开篇即带你回归本质。在1-1至1-5节中,我们将厘清“类”与“对象”的定义及其基本使用。很多同学容易混淆二者,本模块通过生动的案例对比,让你明白类是模板,对象是实例。特别值得重点攻克的是1-4节的“对象内存分析”与1-5节的“引用传递”。Java中的内存管理(栈与堆)是初学者最大的盲区,理解对象在内存中的创建过程以及引用变量如何指向对象,是掌握后续所有高级特性的前提。只有搞懂了“引用传递”与“值传递”的本质区别,才能避免日后在代码调试中陷入无解的困境。
**二、 封装与实战:构建健壮代码**
进入第二模块,我们将深入剖析面向对象三大特性之一的“封装性”(2-1)。封装不仅是关键字的使用,更是一种保护数据、隐藏实现细节的设计思想。随后在构造方法与匿名对象(2-2)部分,你将学会如何优雅地初始化对象。2-3节的综合实战环节,要求你将前几节课的知识融会贯通,完成一个简单Java类的设计与实现,这是检验你是否真正理解“类与对象”运用的试金石。
**三、 数组进阶:从基本类型到对象引用**
数组是Java中最基础的数据结构,但其中的引用类型数组往往被忽视。3-1至3-7节系统讲解了数组的定义、静态初始化、二维数组以及对象数组。请特别注意3-5和3-7节,当数组元素是对象时,其内存布局与基本类型数组截然不同。理解“数组与方法的引用操作”,能让你在处理批量数据时更加游刃有余。
**四、 String类:高频使用的双刃剑**
最后两章聚焦于Java中使用频率最高的String类。4-1至4-5节重点辨析“字符串常量的两种实例化方式”:直接赋值(如 `String s = "abc"`)与 `new String()` 的区别。这不仅是面试题的高频考点,更直接关系到程序的内存效率。结合4-5节的字符串修改分析,你将深刻理解String对象的“不可变性”特性。5-1至5-4节则转向实用工具层面,教你如何通过Java Doc文档查阅API,掌握字符、字节与字符串之间的转换,以及字符串比较的正确姿势(切勿用 `==` 比较内容)。
**学习建议**
本课程理论密度较高,建议在学习内存分析和引用传递时,务必动手画图模拟执行过程。不要急于求成,夯实基础将为后续的集合框架、IO流及Spring框架学习扫清障碍。现在,让我们正式开始这段从入门到精通的面向对象之旅。
课程目录
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)





