章类对象课件1 ch06.pptx
第6章类和对象? 面向对象的基本概念;? 类的声明;? 创建和使用对象;? 类的访问修饰符;? 分部类的概念和使用;? System.Object类和通用方法;? 对象的生命周期
6.1面向对象概念(1)对象(object),从概念层面讲,就是某种事物的抽象(功能)抽象原则包括数据抽象和过程抽象两个方面:数据抽象就是定义对象的属性;过程抽象就是定义对象的操作对象封装了数据和代码(数据和程序)封装,也就是把客观事物抽象并封装成对象,即将数据成员、属性、方法和事件等集合在一个整体内。通过访问控制,还可以隐藏内部成员,只允许可信的对象访问或操作自己的部分数据或方法
6.1面向对象概念(2)继承是允许使用现有类的功能,并在无需重新改写原来的类的情况下,对这些功能进行扩展。继承可以避免代码复制和相关的代码维护等问题继承的过程,就是从一般到特殊的过程。被继承的类称为“基类(baseclass)”、“父类”或“超类(superclass)”,通过继承创建的新类称为“子类(subclass)”或“派生类(derivedclass)”C#语言一个子类只能有一个基类(单一继承),但允许实现多个接口
表6-1继承示例
6.1面向对象概念(3)多态性(polymorphism)是指同样的消息被不同类型的对象接收时导致完全不同的行为。多态性允许每个对象以自己的方式去响应共同的消息,从而允许用户以更明确的方式建立通用软件,提高软件开发的可维护性例如,假设设计了一个绘图软件,所有的图形(Square、Circle等)都继承于基类Shape,每种图形有自己特定的绘制方法(draw)的实现。如果要显示画面的所有图形,则可以创建一个基类Shape的集合,其元素分别指向各子类对象,然后循环调用父类类型对象的绘制方法(draw),实际绘制根据当前赋值给它的子对象调用各自的绘制方法(draw),这就是多态性。如果要扩展软件的功能,例如增加图形Eclipse,则只需要增加新的子类,并实现其绘制方法(draw)即可
6.2类的声明类(class)是C#语言的核心,C#的一切类型都是类,所有的语句都必须位于类内类是一个数据结构,类定义数据类型的数据(字段)和行为(方法和其他函数成员)。对象是基于类的具体实体,有时称为类的实例(instance)类与对象的关系类似于车型设计和具体的车
声明类的基本语法【例6.1】声明类MyHelloWorld……【例6.2】声明类Person……
【例6.1】声明类MyHelloWorld定义了一个简单的成员函数SayHello()
【例6.2】声明类Person定义了两个数据成员(一个public、一个protected)、一个不带参数的构造方法、一个具有两个参数的构造方法、一个方法print()
类的访问修饰符访问修饰符用来控制所修饰成员的可访问域,以使类或者类的成员在不同的范围内具有不同的可见性,从而实现数据和代码的隐藏C#中使用如下访问修饰符:public(公共)、private(私有)、internal(内部)、protected(受保护)【例6.3】类的访问修饰符示例1……【例6.4】类的访问修饰符示例2……【例6.5】类的访问修饰符的使用示例……访问修饰符意义public访问不受限制protected访问仅限于此类或从此类派生的类internal访问仅限于此程序(类所在的程序内,即同一个编译单元:dll或exe中)protectedinternalprotected或者internal,即访问仅限于此程序或从此类派生的类private访问仅限于此类
【例6.3】类的访问修饰符示例1类Dog默认的访问修饰符是internal
【例6.4】类的访问修饰符示例2声明类Dog的访问类型为public
【例6.5】类访问修饰符使用示例
6.3创建和使用对象类名对象名=new类名([参数表]);创建类的对象、创建类的实例、实例化类等说法是等价的,都说明以类为模板生成了一个对象的操作类的对象使用“.”运算符来引用类的成员
【例6.6】对象使用示例声明类PersonTest,该类创建并使用类Person源代码应用程序
【例6.7】对象比较示例源代码应用程序
6.4分部类分部类型(partialtype)可以将类(以及结构和接口)划分为多个部分,存储在不同的源文件中,以便于开发和维护分部类主要用于2种场合:当类的源码十分庞大或需要不同程序员同时进行维护时,使用分部类可以灵活地满足这种要求;使用继承开发工具源代码生成器时,将计算机生成的类型部分和用户编写的类型部分互相分开,以便更容易地扩充工具生成的代码使用类修饰符partial,用来实现通过多个部分来定义一个类【例6.8】分为两部分来实现的分部类示例
Syst