欢迎来到天天文库
浏览记录
ID:9927165
大小:121.50 KB
页数:16页
时间:2018-05-15
《c#基于对象的程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C#面向对象的程序设计教学目标:面向对象编程是当前计算机界关心的重点,是软件开发方法的主流。本章通过具体实例讲解面向对象的特性——继承、接口和多态性,学生更加容易理解和掌握面向对象的设计方法和编程特点。教学重点:继承和多态教学难点:1.类的继承2.多态教学时间:(2+4)学时教学方式:课堂讲授+上机实践复习总结什么是面向对象编程?面向对象编程(Object-OrientedProgramming),简称OOP,它是通过给程序中加入扩展语句,把函数封装进编程所必需的“对象“中实现的。面向对象的编程语言,使得复杂的工作条例清晰,编写容易。·以事物为中心来思考和认识问题·按照这些事
2、物的本质特性把它们抽象为对象·对同类型的对象抽象其共性,形成类·类通过接口和外界联系在面向对象程序设计中,包含了对象,类,封装,继承,多态性等概念面向对象的知识点:·类与对象·在面向对象中,类是封装数据的基本单位·通过类的方法可以访问类中的数据类:–相对对象而言,类似于蓝图–包含方法和数据对象:–是类的实例–使用关键字new创建–对象具有行为类·把具有共同性质的事物划分为一类,得出一个抽象的概念·类即是具有相同属性和服务的一组对象的集合·为属于该类的全部对象提供了抽象的描述,其内部包括属性和行为两个主要部分对象·对象是现实世界中一个实际存在的事物·对象具有自己的静态特征和动态
3、特征·静态特征用某些数据来描述,动态特征用对象的行为或功能来描述·静态特征描述为属性,动态特征描述为行为类的成员:·类中的常量、变量、属性或事件不能与其他类成员同名·类中的方法名不能和其他类成员同名主要包括三种成员:字段:实例字段,静态字段访问实例字段,直接用对象名.字段名,访问静态字段,不能用对象的名称,而要用类名,即类名.字段名属性:get(读取return),set(编写value)方法:方法的定义和调用方法必须定义在类中,包括方法的名称、返回类型、参数列表、方法体。调用当前类的方法,直接使用方法名称,调用其他类的方法,先要创建类的实例——对象,通过对象名.方法名()来
4、调用。类的修饰符:·new:新建类的实例·public:公有类,表示外界可以不受限制的访问·protected:保护类,表示可以访问该类或从该类派生的类·private:私有类,表示只有该类可以访问·internal:内部类,表示仅能访问本组件(Application或Library)·abstract:抽象类,表示该类是一个不完整类,只有声明而没有具体的实现。一般用来做其他类的基类,而不单独使用。也就是说抽象基类不需要实例化·sealed:密封类,表示该类不能作为其他类的基类,不能派生新的类,但可由其他类继承而来面向对象的主要特点:封装·面向对象方法的一个重要原则·把对象的
5、全部属性和行为组合起来,形成一个独立单位·尽可能的隐蔽对象的内部细节,只保留有限的外部接口与外部联系继承·特殊类的对象拥有一般类的全部属性和行为,即为特殊类对一般类的继承·继承对于软件复用有着重要意义多态性·一般类中定义的属性和行为,被特殊类继承之后,可以具有不同数据类型或表现出不同的行为1.类的继承在前面讲过电视的例子,从黑白发展到彩色,又到高清晰,后一代继承了前一代的功能,但是在功能上又有所发展。在面向对象理论中,这就是面向对象的两个重要特征:继承和多态。我们正是通过面向对象的继承性和多态性,开发设计清晰、稳定,易于扩展并且容易维护的软件。在现有类(称为直接基类)上建立新
6、类(称为派生类)的处理过程即称为继承。在建立新类的过程中,直接基类不作任何改变,派生类继承它的直接基类的成员,而基类的实例构造函数、静态构造函数和析构函数除外。派生类除了继承它的直接基类的成员外,也可以另外定义新成员,以扩展它的直接基类。继承就是从基类中获取一些公开的成员,如方法和属性。继承的语法如下:ClassStudent:Person;//继承类ClassStudent:Interface1;//继承接口C#只允许继承一个基类,但允许继承多个接口。如果子类继承了接口,则必须实现接口中定义的公开成员。所谓公开成员,就时在基类中被定义为public的成员,因为public的
7、作用域可以在子类中生效,而private的作用域则不可。C#中如何实现继承:实例:定义Person(基类)下面我们建立一个Person类,它有三个属性,一个方法,三个私有字段,一个无参数的实例构造函数和一个有三个参数的实例构造函数。usingSystem;usingSystem.Windows.Forms;classPerson{privatestringid;privatestringname;privatestringsex;publicPerson(){}publicPerson(stringmy
此文档下载收益归作者所有