第5章 面向对象编程基础1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第5章面向对象编程基础主讲:陈有志2/21教学目标面向对象程序设计(ObjectOrientedProgramming,简称OOP)采用面向对象的程序分析和设计技术开发的软件系统,稳定性、可重用性和可维护性都很好。本章首先介绍OOP的基础知识,进而引导学生踏入面向对象程序设计的殿堂3/21教学重点面向对象编程接口与继承多态性引用类型和值类型4/21什么是面向对象编程(OOP)面向对象编程是创建计算机应用程序的一种相当新的方法,它解决了传统编程技巧带来的问题。以前我们使用C语言或其他语言编写的应用程序是所谓的单一应用程序,即所有的功能都包含在一个代码模块中。而使用面向对象编程,常常要使用许多代码模块,每个模块都提供特定的功能,每个代码模块都是独立的。这种模块化编程方法提供了非常大的多样性,大大增加了代码的重用机会。举个例子说明,假定一个应用程序是一辆一流赛车,如果使用传统的编程技巧,这辆赛车就是一个整体,如果要升级赛车,我们需要把车返厂,换一个不同型号的赛车;而如果使用面向对象编程技术,我们只需要向厂家订购需要升级部分的零件,即用更高级的零件替换掉原有的零件就可以了。我们刚才所说的代码模块,就是C#中的类,在C#中我们把每个代码模块创建成一个类。整个应用程序由许多类组成的。5/21面向对象概述在客观世界中,可以把具有相似特征的事物归为一类,也就是把具有相同属性的对象看成一个类(class)。在面向对象的程序设计中,“类”就是对具有相同属性和相同操作的一组对象的定义。从另一个角度来看,对象就是类的一个实例。6/21类和对象类:相对对象而言,类似于蓝图包含方法和数据对象:是类的实例使用关键字new创建对象类厨房起居室浴室书房饭厅储藏室门廊7/21关于对象和类的举例人Mary抽象类共同的特征:姓名、身高、体重、嘴……共同的行为:吃饭、说话、思考……Tom实例8/21类和对象的通俗说法类:平时我们说话经常说的,“这一类”,“那一类”,“物以类聚,人以群分”中提到的类基本没有区别。你去查汉语词典中“类”的解释,与计算机中对“类”的定义基本上如出一辙。所以就按照你平时生活中的理解去理解类就行了。对象:其实是因为这个词儿是从英文翻译过来的,如果翻译成中文可以翻译成一个更贴切的词“东西”。其实面向对象中的对象就是日常中指的东西。这样就好理解了,一类东西,这些东西是一类的。就相当于面向对象语言中通过类定义对象一样。一类里会有多个东西。每个东西都有属于自己的特征(即C#中不同对象都有属于自己的数据)。9/21类的声明类由类头和类体两部分组成,类声明的格式为:类修饰符class类名//类头{//类体}类修饰符有:public(类是公有的,可以在任何地方访问它)internal(类只在本项目内有效,其他项目不可以访问它,如果声明类时不指定任何修饰符,默认为internal)类名应该满足标示符的命名规则,建议使用PASSCAL命名方法。类体内包含类的所有成员:字段、属性、方法等。10/21类和对象相关概念字段是一个代表和某对象或类相关的变量的成员属性是提供对对象或类的特性进行访问的成员方法是一个执行可以由对象或类完成的计算或行为的成员,相当于其他语言中的函数。11/21声明类和创建对象publicclassStudent{publicstringname;publicinthight;publicintweight;}声明类将类实例化为对象//类在使用时必须进行实例化为对象(此时的实例化就是指对类中的成员进行初始化,为类中的每个成员进行赋初值。)Studentstu1=newStudent();类成员的访问//想要使用类中的成员必须用对象名调用stu1.name=李丽;12/21字段是一个代表和某对象或类相关的变量的成员。classMyClass{publicintMyInt;publicstringMyString;}如何定义字段成员13/21如何编写方法成员方法:一个执行可以由对象或类完成的计算或行为的成员,相当于其他语言的函数[访问修饰符]返回值类型方法名([参数列表]){方法体}例:publicintaddMethod(intx,inty){returnx+y;}14/21定义成员的可访问性和作用域使用访问修饰符,可以定义应用程序中类成员的作用域声明定义public不限制访问private只能从包含的类中访问protected包含的类或继承的子类可以访问15/21示例classClassMain{publicclassCat{publicintage;privateintweight;}staticvoidMain(string[]args){CatzooCat=newCat();zooCat.age=7;zooCat.weight=200;}}16/21构造方法构造方法:是一种特殊的方法,用来实现对象的初始化特点:与类同名没有返回值类型publicclassLion{}publicLion(){……}17/21如何使用构造函数publicclassLion{}publicLion(){Console.WriteLine(“构造Lion);}staticvoidMain(string[]args){}LionbabyLion=newLion();Console.WriteLine(“创建一个新的Lion对象);结果:构造Lion创建一个新的Lion对象18/21注意:构造方法与类名相同构造方法不声明返回类型如果没有编写构造方法,C#自动提供一个缺省的构造方法构造方法19/21当对象创建时,其成员被隐式地初始化类初始化publicclassZoo{}publicstringzooName;publicZoo(){zooName=“开心Zoo;}staticvoidMain(string[]args){}ZoolocalZoo=newZoo();Console.WriteLine(localZoo.zooName);结果:开心Zoo20/21publicclassLion{privatestringname;}带有参数的构造方法publicLion(stringnewLionName){this.name=newLionName;}staticvoidMain(string[]args){}LionbabyLion=newLion(“Tom);Console.WriteLine(babyLion.name);结果:Tom21/21如何重载构造方法创建多个构造方法,使用相同的名字和不同的签名classLion{privatestringname;privateintage;}publicLion(stringtheName,inttheAge){name=theName;age=theAge;}publicLion(stringtheName){name=theName;}publicLion(inttheAge){age=theAge;}实例化类时,根据调用的构造方法的参数个数,决定使用的是哪个构造方法。

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功