# 第一阶段教案: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 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. 泛型 ``:编译期类型检查 **综合项目**:`addressbook/` —— 命令行通讯录 - 封装 Contact 类 - 使用 HashMap 存储联系人(以姓名为 key) - 菜单驱动的 CRUD 操作 - 异常处理防止崩溃 --- ## 教学方法建议 | 环节 | 时间 | 内容 | |------|------|------| | 概念导入 | 15min | 用生活类比引入概念(类=图纸,对象=房子) | | 代码演示 | 30min | 老师在 IDE 中边写边讲,每个语句解释为什么 | | 跟练 | 30min | 学员照着敲一遍,感受语法 | | 独立练习 | 1h | 不看参考代码,独立完成当日练习项目 | | 复盘 | 15min | 对比参考代码,找出差异和理解盲区 | ## 注意事项 1. **不要跳步**:每天的内容建立在前一天的基础上,确保当天掌握再前进 2. **多犯错**:看到报错不要慌,仔细读错误信息是最快的进步方式 3. **先思考后动手**:在写代码前,先用中文把思路写下来 4. **代码量 > 看书量**:每天至少手敲 100 行代码,肌肉记忆很重要