大理学院课程教案
(理论教学)
课程名称:C#面向对象程序设计 课程类型:( 1 )1、必修;2、选修;3、其它
授课对象:计算机科学与技术 专业(本科) 2010 级 1 班 授课时间: 2011 至 2012 学年 三 学期 计划学时: 72学时(其中:理论 36 ,实验:36 )
任课教师: 杜英国 所属学院: 数计学院 课程管理部门(教研室): 软件教研室
大理学院教务处 制
大理学院课程教案(教学内容)
课程名称:C#面向对象程序设计
教 材:《C#程序设计实用教程》 清华大学出版社 ,黄兴荣 编著,2009年第1版
讲 授 人:杜英国 专业技术职务:讲师 学 历:研究生 学 位:硕士 所属章节:第5章 计划学时:6 教学目的和要求:
? 本讲主要讲述了c#语言的面向对象技术,包括面向对象的基本概念、面向对象的程序
设计方法及c#中的类、包、对象、的特性。通过本讲的学习,同学们可以使用面向对象技术编写c#程序。
? 应深刻理解各知识点的概念,使用上一讲的编程基础知识及面向对象技术,编写简单
的c#类,由浅至深,养成风格良好的编程习惯。
教学重点:
1. 仔细体会面向对象编程的思想,熟练理解类和对象的概念,理解面向对象的特性,会编写简单的类,逐渐掌握面向对象编程的方法。
2. 注意c#语言中,不允许多重继承,以及类变量和类方法的使用。
教学难点:
1.理解方法重载和方法重写,不要混淆了两者的使用。 2. 类变量和类方法的使用。
教学方法:课堂讲授 使用教具:多媒体系统 思 考 题: 1、c#的优点;
参考资料:
1. 《think in c#》 2. www.sun.com
第1页
大理学院课程教案(教学内容)
5.1 面向对象技术基础 5.1.1 面向对象的基本概念 面向对象的基本思想 面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等。 1. 对象的基本概念 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。 主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。 2. 类的基本概念 把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。 3. 消息 消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方法或函数。 5.1.2 面向对象的基本特征 1.封装性 封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
第2页
大理学院课程教案(教学内容)
◇ 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。 封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的\交叉感染\,使软件错误能够局部化,大大减少查错和排错的难度。 2.继承性 特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如,轮船、客轮;人、大人。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。例如,客轮是轮船和客运工具的特殊类。在c#语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。 3.多态性 对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:\几何图形\的\绘图\方法,\椭圆\和\多边形\都是\几何图\的子类,其\绘图\方法功能不同。 5.1.3 面向对象程序设计方法 OOA-Object Oriented Analysis 面向对象的分析 OOD-Object Oriented Design 面向对象的设计 OOI-Object Oriented Implementation 面向对象的实现 5.2 C#语言的面向对象特性 5.2.1 类 类是c#中的一种重要的复合数据类型,是组成c#程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原形。一个类的实现包括两个部分:类声明和类体。 1.类声明: [public][abstract|final] class className [extends superclassName] [implements interfaceNameList] {……} 其中,修饰符public,abstract,final 说明了类的属性,className为类名,superclassName为类的父类的名字,interfaceNameList为类所实现的接口列表。
第3页
大理学院课程教案(教学内容)
2.类体 类体定义如下: class className {[public | protected | private ] [static] [final] [transient] [volatile] type variableName; //成员变量 [public | protected | private ] [static] [final | abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList] {statements} //成员方法 } 3.成员变量 成员变量的声明方式如下: [public | protected | private ] [static] [final] [transient] [volatile] type variableName; //成员变量 其中, static: 静态变量(类变量);相对于实例变量 final: 常量 transient: 暂时性变量,用于对象存档 volatile: 贡献变量,用于并发线程的共享 5.成员方法 方法的实现包括两部分内容:方法声明和方法体。 [public | protected | private ] [static] [final | abstract] [native] [synchronized]
第4页