《面向对象程序设计——Java语言》这门课程计划用两个月的时间完成。
本课程的主要内容包括:面向对象程序设计基本概念、类设计、对象交互、抽象类与接口、继承与多态、内部类与匿名类、容器与范型、GUI基础知识等。
本课程是《程序设计入门-Java语言》的后续课程,本课程后续还会有《Java应用技术》,那门课会介绍文件操作、多线程编程、GUI编程、网络socket编程、数据库编程等。
预备知识
程序设计基础知识,如变量、运算符、表达式、判断语言、循环语句、数组、函数等。
第1周 类与对象
1.1 用类制造对象
1.2 定义类
1.3 成员变量和成员函数
1.4 对象初始化
1.x 关于编程题
第1周编程题成绩公布时间:2020/06/22 00:00 / 待定成绩已公布
第2周 对象交互
2.1 对象交互
2.2 访问属性
2.3 包
2.4 类变量
第2周编程题成绩公布时间:2020/06/22 00:00 / 待定成绩已公布
第3周 对象容器
3.1 顺序容器
3.2 对象数组
3.3 集合容器(Set)
3.4 散列表(Hash)
第3周编程题成绩公布时间:2020/06/22 00:00 / 待定成绩已公布
第4周 继承与多态
4.1 继承
4.2 子类父类关系
4.3 多态变量和向上造型
4.4 多态
4.5 类型系统
第4周编程题成绩公布时间:2020/06/21 00:00 / 学生互评成绩已公布
第5周 设计原则
5.1 城堡游戏
5.2 消除代码复制
5.3 封装
5.4 可扩展性
5.5 框架加数据
5.6 类型系统
第6周 抽象与接口
6.1 抽象
6.2 数据与表现分离:细胞自动机
6.3 接口:狐狸与兔子
第7周 控制反转与MVC模式
7.1 控制反转
7.2 MVC模式
第8周 异常处理与输入输出
8.1 异常
8.2 异常机制
8.3 流
8.4 文本输入输出
8.5 流的应用
第1周 类与对象
1.1 用类制造对象
之前我们学习了如何使用系统提供的类,比如String,来创建对象和使用对象。
尤其重要的是我们理解了对象变量和普通变量的不同,对象变量是对象的管理者而非所有者,所以涉及到赋值、函数参数传递和比较都与普通变量有所不同。
现在,我们要来尝试自己定义类,然后用自己定义的类来创建对象。
我们从一个已有的程序开始,看看如何用这个程序中定义好了的类来创建多个对象。这个程序是一个图形用户界面的程序,会显示一个图形窗口,在其中画图。图上的每一个形状,都是一个对象。
我们希望通过对这个程序的尝试,让你充分理解类和对象的关系:类定义了对象长什么样,对象则是按照类的定义所制造出来的实体,一个类可以创建很多对象,每个对象有自己的数据。
对象与类
对象是实体,需要被创建,可以为我们做事情。
类是规范,根据类的定义来创建对象。
对象(这只猫)
表达东西或事件
运行时响应消息(提供服务)
类(猫)
定义猫的所有属性
就是Java中的类型
可以用来定义变量
类定义了对象,对象是类的实体
对象=属性+服务
数据:属性或状态
操作:函数
把对象画成这种蛋图
把数据和对数据的操作放在一起->封装
这是课程中所用的Shapes代码,请务必下载尝试。
注意,这个代码的一些做法,并非良好代码的做法,比如各种表示形状的类中都有相同的成员变量,其实它们应该被放在Shape类中。这里这样做是为了让初学者能比较容易理解这些表示形状的类。
1.2定义类