跳转至

概述

课程内容

  • 面向对象的软件构造概述 & Java语言基础
  • 类与对象、接口和继承、集合
  • 设计模式
  • 单元测试以及代码质量保障
  • 流与输入输出、多线程与同步、泛型与反射
  • Swing介绍、网络编程

软件定义

  • 软件=程序+数据+文档
    • 程序
    • 数据
    • 文档

软件构造的基本流程

img

传统软件开发过程模型

  • 瀑布过程
  • 增量过程
  • 原型过程

瀑布模型是最典型的预见性开发方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。

缺点:无迭代,无法适应需求增加、变化

流行软件开发过程模型

  • 敏捷开发
  • 测试驱动开发

敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化

测试驱动开发:要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行

  • 敏捷开发实例:微信
2011.1 2012.8 2017.1 2017.3 2017.5
微信发布 公众号上线 小程序正式发布 公众号可能转小程序 开放附近的小程序
2017.6 2017.8 2017.9 2017.11 2018.3
小程序间可跳转 小程序可关联50个公众号 搜索框下方添加小程序快捷入口 小程序可通过公众号底部广告推广 内侧小程序广告组件

软件构造目标

  • 可理解性
  • 可维护性
    • 做到“高内聚,低耦合”
  • 可复用性
  • 时空性能
    • 内存性能
    • 算法性能
    • I/O性能

面向对象三大特性

  • 封装
    • 隐藏对象的属性和实现细节,仅对外公开访问方法
    • 增强安全性
  • 继承
    • 子类继承父类的特征和行为
    • 实现代码复用
  • 多态
    • 同一个行为具有多个不同表现形态的能力(“一个接口,多个方法”)
    • 提高程序扩展性、可维护性

面向对象思想

结构化方法

  • 复杂世界\(\to\)复杂处理过程(事情的发生发展)
  • 设计一系列功能以解决某一问题
  • 寻找适当的方法储存数据

面向对象方法

  • 任何系统都是由能够完成一组相关任务的对象构成
  • 如果任何对象依赖于一个不属于他负责的任务,那么就需要访问负责此任务的另一个对象(调用其他对象的方法)

对象内部的一些信息是隐藏起来,不能使其他对象直接访问自己的数据(封装效果)

  • 所有的交流都是通过方法的调用实现