《面向对象技术》PPT课件.ppt

上传人:za****8 文档编号:12727053 上传时间:2020-05-20 格式:PPT 页数:48 大小:670.06KB
返回 下载 相关 举报
《面向对象技术》PPT课件.ppt_第1页
第1页 / 共48页
《面向对象技术》PPT课件.ppt_第2页
第2页 / 共48页
《面向对象技术》PPT课件.ppt_第3页
第3页 / 共48页
点击查看更多>>
资源描述
第三章面向对象技术,本章学习要点:,了解类的定义方式理解类的成员的重载理解类的继承的概念熟练掌握派生类的定义方法理解多态性的概念和重载的概念掌握抽象类与封闭类的使用方法了解接口和委托的概念掌握与字符串和集合相关的类的使用,3.1定义类,面向对象编程是一种功能强大的程序设计方法,它以“数据控制访问代码”为主要原则,围绕数据来组织程序。在进行面向对象编程时需要定义数据和作用于数据上的方法。这样,数据类型可以精确的定义出哪种类型的操作可以应用于该数据。,3.1.1了解类的定义格式,语法格式:类型修饰class类名:基类类成员;,3.1.2添加字段,语法格式:修饰符字段类型字段名例如:publicinta;,3.1.3添加属性,属性是用相关类型成员命名的。它包含存取程序,它的读程序和写程序需要声明。例如:publicstringNamegetreturnname;setname=value;,3.1.4添加方法,语法形式:修饰符返回值方法名(参数列表)例如:publicvoiddisplay()Console.WriteLine(“一个方法正在被调用!”);,3.1.5添加构造函数和析构函数,构造函数析构函数,构造函数,构造函数是类的实例执行的时候的初始化操作。构造函数的名称与类的名称相同。例如,如果一个类类名为Myclass,那么它的构造函数的名称是Myclass(),构造函数,使用构造函数时需要注意:类的构造函数名要与类名相同。构造函数没有返回类型。一般情况下构造函数是public类型的。不能显式的调用构造函数。,析构函数,析构函数是在类破坏时自动执行的操作。它在碎片收集时自动调用。在声明析构函数时,它的标识符必须为声明析构函数的类的命名,如果指定了任何其他名称,就会发生错误。,析构函数,析构函数的语法格式:类名()销毁实例的语法例如,如果一个类类名为Myclass,那么它的析构函数的名称是Myclass()。,3.2.1重载方法,为多个方法指定相同的名称,但使它们具有不同的参数列表,可以在类中创建重载的方法。调用的时候根据参数列表的不同来正确的调用。,3.2.2重载构造函数,重载构造函数的方法和重载方法是一样的,多个构造函数具有不同的参数列表。,3.3实现继承,继承是面向对象程序设计中一个很重要的特性,它是关于一个类怎么从另一个类中共享特性和行为的术语。在C#中继承类称为派生类或子类,被继承类称为基类或父类。如果一个派生类继承一个基类,那么这个派生类会从其基类中继承得到所有的操作、属性、特性、事件以及这些内容的实现方法。要想实现继承,必须要定义基类和派生类。,3.3.1定义基类和派生类,派生类的一般格式:类型修饰符class派生类名:基类名派生类成员;,单继承,单继承是指由一个基类派生出一个派生类,这个派生类继承了基类的成员。,多层继承,继承是可以传递的。如果C从B中派生,B又从A中派生,那么C不仅继承了B中的成员,同时也继承了A中的成员。,3.3.2实现带参构造函数的继承,基类中不带参数的构造函数可以直接被继承。如果需要继承基类中带有参数的构造函数,则需要进行特别声明。,3.3.3使用访问修饰符定义成员作用域,publicprotectedprivate,3.4实现多态性,在继承环境中的多态性,一般指同一操作作用于不同类的实例,不同类将进行不同的解释,最后产生不同的执行结果。多态一般通过重写虚方法来实现。,3.4.1重写虚方法,在基类中的成员可能执行与派生类中同名成员的不同任务,或者派生类中成员必须提供基类中对应抽象成员的实现方式,这种过程称为重写。当类中的方法声明前加上virtual修饰符,我们将此方法称为虚方法。基类中虚方法的实现方式,在派生类中可以通过重写来改变。,重写虚方法的一般格式:,publicclassBaseclasspublicvirtualvoidshow()publicclassDerivedclass:Baseclasspublicoverridevoidshow(),3.4.2使用new关键字,如果成员方法使用new修饰、那么表示这个成员是“全新”的,即使基类有相同签名的成员方法并说明为virtual,这个方法也和基类方法相同签名方法没有任何关系。,3.5.1使用抽象类与抽象方法,抽象类的概念一般是指,基类并不与具体的事物相联系,而只是表达一种抽象的概念。而没有具体实现的方法叫做抽象方法,要想使用抽象方法,必须使用override关键字进行重写,抽象类与抽象方法都使用abstract关键字来修饰。,3.5.1使用抽象类与抽象方法,抽象类与抽象方法的一般形式如下所示:publicabstractclassApublicabstractvoidStart(inti);,抽象类和抽象方法有如下特点:,抽象类不能实例化要想使用抽象类,必须继承这个类,生成派生类抽象方法没有实现部分要想使用抽象方法,必须对它进行重写抽象方法所在的类必然是抽象类抽象类中可以有抽象方法,也可以没有,3.5.2使用密封类和密封方法,密封类的一般形式如下所示:PublicsealedclassApublicvoidshow()被声明为sealed的类不能被继承,密封方法,不是每个类的成员方法都可以作为密封方法,密封方法必须对基类的虚方法进行重载。所以在声明密封方法时,sealed修饰符总是和override同时使用。被声明为密封方法,就不能再被重写了。,3.6使用接口,接口(Interface)用来定义一种程序的协定。它包含属性、方法、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员,所以接口不能被实例化。,接口,接口是使用interface关键字定义的,定义形式如下:访问修饰符inferface接口名称:基接口列表例如:interfaceIComparableintNum1get;set;intNum2get;set;intCompareTo();,接口,在C#中,接口具有如下一些特点:C#的接口是独立于类来定义的接口可以定义属性、方法、事件和索引器一个接口定义一个只有抽象成员的引用类型,没有执行代码接口不能继承类,类可以继承接口类只能继承一个类,而接口和类都可以继承多个接口,3.7使用委托,在C#语言中,委托也是面向对象的。可以使用委托将方法封装在委托的对象内,然后再使用委托的对象将参数传递给方法,从而实现方法,但却无需直接调用方法。,3.7.1定义委托,委托的定义与方法很相似,但是没有实现部分,并且需要使用delegate关键字。委托的定义格式如下:修饰符delegate返回类型委托名(参数列表)例如:delegatedoubleMyDelegate(doublea,doubleb);,3.8使用C#常用类,.NETFramework为我们提供了强大的类库,类库中包含了许多我们常用的类。这给编程人员的工作带来了极大地方便。通常使用命名空间将这些类组织为层次结构。,3.8.1使用String类,C#中的String类与string类型有些相似,但由于它是类库中的类,因此它具备类的特征,他有一些功能强大的方法,使它更具实用性。,String类的常用方法,3.8.2使用StringBuilder类,调用String类的方法对字符串进行操作时,并未改变字符串本身。那么,如果我们要改变字符串本身,我们可以使用StringBuilder类,这个类的对象通常称为可变字符串。这个类的命名空间为:System.Text,StringBuilder类的常用方法,3.8.3使用ArrayList类,ArrayList是一种集合类,在C#中,如果要使用集合类,必须在程序头添加以下声明,为集合类指明命名空间:usingSystem.Collections;要访问ArrayList集合类的对象元素,也要使用索引,这和数组有些相似。,ArrayList类的常用方法,3.8.4使用Stack类,Stack也是一个集合类,它遵循LIFO(LastInFirstOut)原则,相当于堆栈。因此,它也具有与堆栈相似的特性。,Stack类的常用方法,3.8.5使用Queue类,Queue类同意也是一个集合类。与Stack类相比,它更像一个队列。因此它遵循FIFO(FirstInFirstOut)原则。,Queue类的常用方法,3.8.6使用SortedList类,SortedList也是一个特殊的集合类,被称为字典集合。字典集合的每一个元素都由一对键/值对组成。,SortedList类的常用方法,课后习题,类的主要成员是什么?简述构造函数与析构函数的作用。常用的访问修饰符有那些?简述抽象类的特征。什么是接口?String类与StringBuilder类的区别是什么?常用的集合类有哪些?各有什么特点?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!