一、教学模式

1. 案例驱动教学模式介绍【了解】(视频01) (4‘’)
  1. 什么是案例驱动教学模式

    通过新知识点去优化代码

  2. 优化代码的目标

    提高复用性

    提高可读性

    提高维护性
    在这里插入图片描述

二、分类思想

1. 分类思想【理解】(视频02) (11‘’)
  • 为什么分类

    因为分类,可以提高代码的 复用性、可读性、维护性

  • 分类的核心思想

    分工协作,专人干专事

    单一职责原则:一个类或者一个方法只负责一项职责
    在这里插入图片描述

  • 分类思想的使用-案例
    在这里插入图片描述

在这里插入图片描述

三、分包思想

1. 包的概述和定义【理解】(视频03) (6‘’)
  • 什么是包

    本质上就是文件夹

  • 为什么分包

不同功能的类文件,放在不同的包下。方便管理和后期维护

  • 包的创建规则

    1. 包名所有字符均为小写,同时不能有特殊字符(% ¥ $ @ ! 等等)

    2. 多级包之间使用”.”进行分割

    3. 公司域名地址翻转(去掉www)

      比如:黑马程序员的网站地址是: www.itheima.com

      包的命名就是 com.itheima.项目名

      互动: www.taobao.com

  • package关键字

    package : 用于指定一个类在哪个包下

2. 包的注意事项和类访问【理解】(视频04) (11‘’)
  • 包的注意事项

    • package 语句必须是程序的第一条可执行代码
    • package 语句在一个java文件只能有一个
    • 如果没有package,默认无包名
  • 类的访问

    • 同一个包下类的访问

      • 不需要导包,直接使用即可
    • 不同包下类的访问

      • import关键字

        import : 指定引用类所在包的路径

        必须在: package 关键字下面,class关键字上面

      • 全类名访问

        包名+类名

        应用场景: 引用类时,出现包路径不同, 类名相同的情况

四、项目实战(黑马信息管理系统)

1. 需求说明和效果演示【了解】(视频05) (5‘’)

在这里插入图片描述

在这里插入图片描述

2. 环境搭建【】(视频06) (8‘’)
  • 创建模块 itheima-edu-info-manager

  • 创建包、创建类

存储的类 作用
com.itheime.edu.info.manager.domain Student.java 封装学生信息
com.itheime.edu.info.manager.dao StudentDao.java 访问存储数据,进行增删改查(库管)
com.itheime.edu.info.manager.service StudentService.java 业务的逻辑处理(业务员)
com.itheime.edu.info.manager.controller StudentController.java 和用户打交道(客服接待)
com.itheime.edu.info.manager.entry InfoManagerEntry.java 程序的入口类,提供一个main方法
3. 菜单搭建【】(视频07) (13‘’)
  • 黑马管理系统菜单

    ——————–欢迎使用黑马信息管理系统—————————-

    1、学生管理 2、老师管理 3、退出

    请输入您的选择:

  • 学生管理系统菜单

    ——————–欢迎使用黑马<学生>管理系统—————————-

    1、添加学生 2、删除学生 3、修改学生 4、查询学生 5、退出

    请输入您的选择:

  • 开发思路

    1. 用输出语句完成主界面编写
    2. 用Scanner实现键盘录入数据
    3. 用switch语句完成操作选择

    注意: 学生菜单的退出,是回到上级菜单,并不是将整个程序退出

    System.out.println("--------------欢迎使用黑马信息管理系统--------------");
    System.out.println("请输入您的选择:1、学生管理  2、老师管理  3、退出");
    
    Scanner scanner = new Scanner(System.in);
    String next = scanner.next();
    
    switch (next) {
        case "1":
    		System.out.println("学生管理!");
            break;
        case "2":
            System.out.println("老师管理!");
            break;
        case "3":
            System.out.println("感谢您的使用!");
            System.exit(0);  //退出当前正在运行的虚拟机
            break;
        default:
            System.out.println("请重新输入有效值!");
            break;
    }
    
  • 退出当前正在运行的虚拟机

     System.exit(0);
    
自由练习-15分钟 (注意:命名规则 , 选择JDK)
4. 添加功能-思路分析【理解】(视频08) (4‘’)
  • 需求明确

在这里插入图片描述

  • 开发思路分析

    核心还是理解分类思想

    • 类与类之间的相互调用 (代码实现)

      通过new对象,让其它类帮我们做事

      通过返回值,获取事情的反馈结果

    • 代码到底是该写到那个类? (放错了也没关系)

      将搞不清楚的东西,统统放到service类里面就可以了

    • 类的调用是单向的

      Controller类中就是调用Service类, Service类中就是调用Dao类的

在这里插入图片描述

5. 添加功能-代码实现【重点】(视频09) (15‘’)
  • 代码图
    在这里插入图片描述

  • 对象存储-数组

在这里插入图片描述

自由练习
6. 添加功能-加入学号判断【重点】(视频10) (15‘’)
  • 思路分析

在这里插入图片描述

  1. controller 调用 service的 isExists方法 获取id是否存在,存在提示id重复,重新输入,不存在继续正常的添加流程
  2. service 调用 dao的 findAllStudent方法,遍历数组判断是否存在,返回结果
  3. dao 获取数组信息返回

  • 代码图
    在这里插入图片描述
自由练习-15分钟
7. 添加功能-问题分析【重点】(视频11) (3‘’)

同一个类,new出来的对象是不同的实例, 不同的实例中对象的成员变量存储空间是不同的

在这里插入图片描述

在这里插入图片描述

8. static关键字【重点】(视频12) (10‘’)
  • static关键字、可以修饰哪些成员

    static关键字 可以修饰成员变量,成员方法

    ​ 被static修饰的成员变量,一般叫做静态变量

    ​ 被static修饰的成员方法,一般叫做静态方法

  • 被static修饰的成员特点

    1. 多了一种调用方式,可以通过类名.进行调用
    2. 被static修饰的成员,会被该类的所有对象所[共享]
    3. 被static修饰的成员,会随着类的加载而加载,优先于对象存在
9. static注意事项-学号存在问题解决【】(视频13) (7‘’)
  • static 关键字 – 静态方法

    1. 静态方法只能访问静态的成员
    2. 非静态方法可以访问静态的成员,也可以访问非静态的成员
    3. 静态方法中是没有this关键字
自由练习-10分钟(另一种解决方式)
10. 查看学生-代码实现【】(视频14) (10‘’)
  • 需求

在这里插入图片描述

  • 开发思路

在这里插入图片描述

  • 代码图(只有关键代码)

在这里插入图片描述

11. 删除功能-代码实现【】(视频15) (14‘’)
  • 需求

在这里插入图片描述

  • 开发思路

在这里插入图片描述

  • 代码图(只有关键代码)

在这里插入图片描述

12. 修改功能-代码实现【】(视频16) (8‘’)
  • 需求

    在这里插入图片描述

  • 开发思路

在这里插入图片描述

  • 代码图(只有关键代码)

在这里插入图片描述

13. 代码优化【】(视频17) (8‘’)

业务相同的重复代码,可以提取到一个方法中,提高代码的复用性

14. 老师管理系统-环境搭建【】(视频18) (2‘’)

在这里插入图片描述


版权声明:本文为InLoadwetrust原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/InLoadwetrust/article/details/119929862