面向对象编程与设计
面向对象编程与设计
5000+ 人选课
更新日期:2025/05/05
开课时间2024/09/10 - 2024/12/31
课程周期16 周
开课状态已结课
每周学时-
课程简介

1. 为什么要学这门课?

面向对象设计、设计模式以及编程语言Java等已成为软件系统设计和编程实现的主流。本课程根据时代需求,设计教学内容,培养计算机科学和软件工程专业学生从需求出发,进行面向对象UML类图设计和Java面向对象编程的必备知识、技能。

2.这门课的主题是关于什么?

本课程主题为“需求分析-UML类图设计-Java编程实现”,以“精(UML面向对象建模和Java面向对象编程的理论知识集中在80%情况下应用的重点、核心内容的无冗余性),实(内容以项目的需求分析、面向对象设计和面向对象实现为线索的务实性),练(以实际项目为导向,以解决方案多样性进行引导的实践性),新(与产业发展和需求契合的先进性)”为教学目的,将面向对象UML类图设计与Java面向对象编程有机结合,培养学生用面向对象的思想进行软件设计(即UML类图)的能力、应用面向对象语言Java进行规范化开发的能力。

3. 学习这门课可以获得什么?

(1)知识目标

(a)培养学生用面向对象的思想进行设计的能力。

    掌握UML语言中类图的语法和语义,以及用UML类图进行面向对象设计的方法,对于现实生活中的实际需求,会运用UML进行面向对象类图的设计,给出自己设计该软件系统的设计方案,并会类、类与类之间的关系以及用户需求,分析该设计方案是否可以实现用户功能。

(b)培养学生应用Java面向对象机制进行规范化编程的能力。

    掌握Java面向对象的编程特征:类封装性、异常处理机制、类的创建和应用、类与类之间的继承、继承导致的多态性、抽象类、接口、输入/输出原理,以及Java界面开发框架和原理,会使用面向对象的编程特征编写Java程序,并使编写的Java程序代码符合工业代码规范(包括注释和编码规范),具备高质量专业代码风范。

(c)培养学生运用设计模式的能力。

    掌握两种设计模式(单一实例设计模式和策略模式)的熟练运用,会根据实际应用场景,复用两种设计模式以提升面向对象设计方案的质量。

(2)技能目标

(a)可以根据需求规格说明,用UML类图进行面向对象解决方案的设计。

(b)可以运用UML编辑器绘制UML类图。

(c) 可以在UML类图的设计方案中复用设计模式。

(d) 可以用Java编程实现一个类图,包括实现类图中的各个类,以及类与类之间的关系和继承关系。

(e)可以用Java实现控制台读写和文件读写的功能。

(f) 可以运用Java为系统开发界面。

(g) 可以运用Java中的接口和抽象类优化设计类图中的基类,并提供接口、抽象类的实现。

(h) 可以使用集成开发环境Eclipse对Java进行开发和调试,完成一些编程任务,例如扩展现存程序的功能、提高现存程序模块的性能、调试和改正不符合需求规格说明的程序。

(i)可以用Java实现指定行为的类。

4. 这门课有什么特色和亮点

1)  具备国际先进教学内容设计的理念,内容组织方式以迭代式“需求分析-设计-分点实现”为线索

在对学生的心理认知特点进行分析的基础上,以“需求分析-设计-分点实现”为线索的方式进行内容组织,使面向对象设计理念深入浅出,逐步实现,逐步扩展,螺旋上升。课程内容独特的编排方式将面向对象设计与面向对象编程语言并重,与各个模块分课程进行独立讲解相比,在重点突出、强化和培养学生对知识的灵活应用能力和软件开发能力等方面更具有优势。

2)  以“任务”驱动和“工程项目”导向的方式阐释课程内容

本课程保证教学任务的“实践性”和解决问题的“多样性”,将接近企业实践的大型、系统的案例(图书管系统等)融入教学内容的各个环节,贯穿到面向对象理论、技术和实践的各个阶段点上,突出强调其工程性、应用创新性以及问题解决方案的多样化;帮助学生深入掌握和灵活应用所学知识。在课程中工程项目和具体任务的辐射下,结合教学活动,要求学生参与动手实践活动,提出自己的解决方案,实现具有应用价值的工程项目产品,对充分发挥学生的学习兴趣,提高学生自觉学习的能力和创新能力都具有重要的意义。课程还强调对学生规范化软件开发和职业素养的培养,重视学生职业实战能力和高层次工程素质的培养。

3)  精益求精的综合性、系统性、内聚性大类课程

从系统的思维模式出发建设教学内容,考虑该课程在软件工程学科的位置,以及该课程对学生职业生涯的影响,它的先修课程是C语言,后修课程有数据结构、网络编程、软件工程、J2EE架构与程序设计等,所以,该课程的内容设置与先修、后修课程应有很好的延续性、支撑性,避免重复,避免核心内容缺失,例如,与C语言重复的单词词法、运算符、表达式、控制流以及函数定义等相关语法细节,在本门课程中不再重复讲解;例如,对面向对象的类图设计,讲解的非常细致和完善,以支撑后续课程的学习。

以面向对象静态类图设计、类图的编程实现(Java面向对象机制)为主线的教学内容自成体系、有的放矢,教学内容是一个由面向对象基础设计、面向对象设计模式以及Java面向对象编程机制三个关联模块构成的系统,根据预先编排的教学顺序和组织对这3个模块进行内容设置,他们之间相互影响,互为基础,并体现理论与实践的关系、设计与实现的关系。

5)  与国内外同类课程的比较

国内大学针对软件专业,就面向对象技术方面开设的课程而言,主要涉及以下三类课程,相对应课程的授课学时约50-60学时不等,各软件工程相关专业一般开设下列课程中的2-3门。

a)   面向对象技术及其应用:主要讲解面向对象技术的基本概念、方法与当前的主要应用领域及发展方向等;

b)   面向对象分析与设计:主要讲解UML语法、UML静态建模和动态建模等;

c)   JAVA语言与面向对象程序设计:全面讲解Java的程序设计的基本概念、语法和相关技术;

上述课程一般分为三个学期,由不同的任课老师进行讲授,在国内面向对象的相关课程中,缺乏将面向对象设计和面向对象编程进行紧密结合的课程,更加缺乏大型、系统的案例对面向对象设计和编程内容进行全程贯穿的,这会导致学生学面向对象设计时不考虑编程实现,而集中于面向对象设计的语法或概念细节,学面向对象编程时不考虑面向对象软件的设计,而仅集中于编程语言的语法细节,这样非常不利于学生对面向对象思维、设计和实施进行系统地掌握和实践,软件工程专业的学生似乎“什么都会一些”,又不堪大用,无法主动完成创新型软件的研发,解决问题的能力弱,不能满足目前大型、国际化软件企业的高要求。

课程大纲
UML类图设计
1.1面向对象编程基础
1.2类图-类及继承关系
1.3类图-类之间的关联关系
1.4常用类结构及案例分析
1.5图书馆系统类图建模分析
UML类图的编程实现
2.1Java开发工具包
2.2Java类
2.3Java对象声明与创建
2.4Java访问权限控制
2.5static关键字的用法编
2.6实现图书馆系统中的部分类
2.7Java API应用
2.8Java异常处理
2.9Javadoc注释
2.10Java继承
2.11Java中的多态
2.12泛型
2.13Java 容器框架介绍
2.14Java 数组应用
2.15ArralyList容器
2.16抽象类及其应用
2.17接口及应用
2.18常规类、抽象类和接口的对比分析
设计模式
3.1设计模式介绍和单一设计模式
3.2策略设计模式介绍
3.3策略设计模式应用案例
输入、输出和界面编程实现
4.1Java IO介绍
4.2Java 输入和输出字节流
4.3Java字节过滤流
4.4Java输入和输出字符流
4.5Java字符过滤流
4.6Java文件读写和控制台读写应用案例
4.7Java界面组件介绍
4.8Java界面搭建方法
4.9Java布局管理器应用
4.10Java界面编程及事件处理机制
4.11Java界面事件处理案例分析-基本事件处理