Week 1-8: Spring Boot 学习计划完整项目

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-29 23:45:17 +08:00
commit f95aa18724
201 changed files with 18595 additions and 0 deletions

157
week1/教案.md Normal file
View File

@@ -0,0 +1,157 @@
# 第一阶段教案Java 核心基础速通(第 1 周)
> **学习周期**7 天
> **每日用时**2-3 小时
> **教学方法**概念讲解30min→ 代码演示30min→ 动手练习1-2h
> **最终产出**:命令行通讯录程序
---
## 每日教学大纲
### 第 1 天Hello World —— 迈出第一步
**核心概念**JDK/JRE/JVM 的关系、Java 跨平台原理、编译与运行
**教学重点**
1. JDK开发工具包包含 JRE运行环境JRE 包含 JVM虚拟机
2. Java 程序先编译成 .class 字节码,再由 JVM 执行 —— "一次编译,到处运行"
3. `javac` 是编译器,`java` 是启动器
4. `public static void main(String[] args)` —— 程序的唯一入口
**代码示例** `day01/HelloWorld.java`
```java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
```
**常见踩坑**
- IDEA 中右键 → Run 即可运行,无需手动配置环境变量
- 文件名必须和 public 类名完全一致(包括大小写)
---
### 第 2 天:数据与运算 —— 让程序"算"起来
**核心概念**:基本数据类型、变量声明、运算符、字符串拼接
**教学重点**
1. 8 种基本类型byte/short/int/long/float/double/char/boolean
2. 变量声明三要素:类型 + 名称 + 值
3. 算术运算符:`+ - * / %`,注意整数除法截断
4. 字符串用 `String`(不是基本类型,是引用类型),`+` 可拼接
**练习项目**`day02/Calculator.java` —— 一个简单的四则运算计算器
---
### 第 3 天:流程控制 —— 让程序"思考"起来
**核心概念**:条件判断、循环、分支选择
**教学重点**
1. `if / else if / else` —— 分支逻辑
2. `switch` —— 多分支(适合固定值匹配)
3. `for` 循环 —— 已知次数时使用
4. `while` 循环 —— 未知次数时使用(先判断后执行)
5. `do-while` 循环 —— 至少执行一次(先执行后判断)
6. `break` 跳出循环,`continue` 跳过本次
**练习项目**
- `day03/MultiplicationTable.java` —— 打印 9×9 乘法表for 嵌套)
- `day03/GuessNumber.java` —— 猜数字游戏while + if
---
### 第 4 天:数组与方法 —— 组织数据与代码
**核心概念**:数组、动态数组、方法定义与调用
**教学重点**
1. 数组声明:`int[] arr = new int[10];`
2. 数组下标从 0 开始,越界会抛 `ArrayIndexOutOfBoundsException`
3. `ArrayList` 动态数组:`ArrayList<String> list = new ArrayList<>();`
4. 方法的定义:`public static 返回类型 方法名(参数列表) { 方法体 }`
5. 方法的调用:`方法名(实参);`
6. 形参 vs 实参,值传递
**练习项目**`day04/StudentScoreManager.java` —— 学生成绩管理器
- 添加成绩、查看全部、计算平均分、查找最高/最低分
---
### 第 5 天:面向对象(上)—— 用类描述世界
**核心概念**类与对象、构造方法、封装、this 关键字
**教学重点**
1. 类是模板,对象是实例 —— `new 类名()` 创建对象
2. 成员变量 vs 局部变量
3. 构造方法:与类同名,无返回值,用于初始化对象
4. 封装:`private` 修饰成员变量 + `public` getter/setter
5. `this` 关键字:代表当前对象,区分成员变量和局部变量
**练习项目**`day05/Student.java` —— 定义 Student 类
- 属性姓名、年龄、学号private
- 方法:学习、考试、自我介绍
- 写测试类创建 3 个学生对象并调用方法
---
### 第 6 天:面向对象(下)—— 继承与多态
**核心概念**:继承、多态、接口、抽象类
**教学重点**
1. `extends` 继承:子类拥有父类的属性和方法(单继承)
2. `super` 调用父类构造方法或成员
3. 方法重写 `@Override`:子类重新定义父类方法
4. 多态:父类引用指向子类对象 `Animal a = new Dog();`
5. `abstract` 抽象类:不能实例化,可以有抽象方法和普通方法
6. `interface` 接口:完全抽象,一个类可以实现多个接口
**练习项目**`day06/AnimalHierarchy.java` —— 动物继承体系
- 抽象父类 Animal有 name 和抽象方法 makeSound
- 子类 Dog、Cat 重写 makeSound
- 接口 Pet有 play 方法Dog 和 Cat 实现它
---
### 第 7 天:异常处理 + 集合框架 + 综合项目
**核心概念**异常处理、集合框架List/Map/Set
**教学重点**
1. try-catch-finally 处理异常,防止程序崩溃
2. `ArrayList` 有序列表List—— 可重复,有索引
3. `HashMap` 键值对Map—— key 唯一,快速查找
4. `HashSet` 无序集合Set—— 不可重复
5. 泛型 `<T>`:编译期类型检查
**综合项目**`addressbook/` —— 命令行通讯录
- 封装 Contact 类
- 使用 HashMap 存储联系人(以姓名为 key
- 菜单驱动的 CRUD 操作
- 异常处理防止崩溃
---
## 教学方法建议
| 环节 | 时间 | 内容 |
|------|------|------|
| 概念导入 | 15min | 用生活类比引入概念(类=图纸,对象=房子) |
| 代码演示 | 30min | 老师在 IDE 中边写边讲,每个语句解释为什么 |
| 跟练 | 30min | 学员照着敲一遍,感受语法 |
| 独立练习 | 1h | 不看参考代码,独立完成当日练习项目 |
| 复盘 | 15min | 对比参考代码,找出差异和理解盲区 |
## 注意事项
1. **不要跳步**:每天的内容建立在前一天的基础上,确保当天掌握再前进
2. **多犯错**:看到报错不要慌,仔细读错误信息是最快的进步方式
3. **先思考后动手**:在写代码前,先用中文把思路写下来
4. **代码量 > 看书量**:每天至少手敲 100 行代码,肌肉记忆很重要