第一范文网 - 专业文章范例文档资料分享平台

第10章 类和对象

来源:用户分享 时间:2025/7/31 23:37:02 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第10章

目 标

类与对象

学习完本章之后,你应该能够掌握以下概念: ? 什么是面向对象 ? 对象和类的基础知识 ? 如何定义类 ? 如何构造类

? 构造函数和析构函数是如何运行的 ? 如何定义字段 ? 如何定义属性 ? 如何定义方法 ? 如何限制类的访问 ? 如何继承和拓展类 ? 如何使用this关键字

引 言

本章将介绍C#中两个重要的概念:类与对象。类与对象是面向对象中最基本的概念。这两个概念比较复杂,因为它们是一种综合了其他数据类型的复杂类型,请读者在本章多下功夫。

10.1 面向对象编程技术

类是面向对象编程技术的重要体现之一,因此在介绍类的相关知识之前,先向读者介绍一些面向对象编程技术的基础知识。

10.1.1 面向对象编程基础

面向对象编程的英文全称为Object一Oriented Programmjng,简称为OOP,,面向对象编程技术是计算机编程技术中的一次重大进步,OOP于20世纪60年代被提出,并最早应用于Smalltalk程序设计语言中。在以后的应用中其被逐渐发展和完善。

在面向对象编程技术出现以前,程序的编写普遍采用的是过程式或函数式的程序设计方法。采用这类方法编写程序时,着重考虑的是解决问题的过程。这个时期,程序通常用流程图来描述。以C语言为例,通常开发人员用它来解决一些数据处理相关的问题。通常的C语言代码中都包含着大量的函数,这些函数被按照不同的顺序调用以解决某些特定的问题。 举例说明,采用这种编程的方法来描述一个农民张三。张三是A村的农民,他早上7点出门务农,下午6点回家,一天吃三顿饭??实现这样一种描述并不困难,但如果要在程序中描述另外一个人李四,他是B村的农民,早上9点出门务农,下午5点回家??对于

1

这种差别的处理需要大量的重复代码。另外,如果张三原来是手工的方式务农,现在改成机械化务农,那么代码中的部分单元将会大面积地改动。

因此,传统的编程方式不利于程序的扩展,非常不灵活。而面向对象的编程着重于程序的初期设计,使得程序的扩展性比较高。对待上述问题,面向对象的编程将会抽象出一种农民类型,而张三和李四作为这种农民类型的子类型,这样既减少了代码的数量,在代码升级的时候也非常方便。

面向对象编程技术有许许多多的内容,此处仅仅是为了使读者能够对其有一个大概的印象。在以后的学习中,将会逐渐介绍面向对象编程技术的各个方面。面向对象的知识对于初学者来说比较抽象,希望读者能多加体会,逐渐地深入到这种有趣的技术中。

10.1.2 对象和类

简单地说,类就是一种抽象的数据类型,但是其抽象的程度可能不同。而对象就是一个类的实例。如前所述,可以将农民设计为一个类,张三和李四各为一个对象。

可以看出,张三和李四有很多共同点,他们都在某个农村生活,早上都要出门务农,晚上都会回家。对于这样相似的对象,就可以将其抽象出一个数据类型,此处抽象为农民。这样,只要将农民这个数据类型编写好,程序中就可以方便地创建张三和李四这样的实例。在代码需要更改的时候,只需对农民类型进行修改就可以了。面向对象的知识将在下面的章节中通过代码实例逐一向读者介绍。

如果读者有一些面向对象基础知识的学习经历,可能会对“用户自定义类型(User DefineType)”一词比较熟悉。事实上,类(Class)的概念和用户自定义类型并没有本质上的区别。通常而言,一个用户自定义类型都会包括这个类型的数据成员和方法成员。可以将数据成员理解为此类型的某些固有特性,例如前面提到的农民,农民的固有特性可以有该农民叫什么、年龄多大、性别等。另外,可以将方法成员理解为该类型可以做什么,例如该农民可以走路、吃饭、务农等。

如果用面向对象的理论来考虑,则可以将农民的这些共有的特性和能力进行抽象,形成一个用户自定义类型,之所以将其称为用户自定义类型,是因为典型的.NET Framework中并不提供现有的能够表示农民的基础类型。

10.2 类

类的概念构成了面向对象的基础,因此掌握类的概念显得尤为重要。本节主要介绍类的相关知识,希望读者能仔细阅读。

10.2.1 定义类

类是C#中功能最为强大的数据类型。像结构一样,类也定义了数据类型的数据和行为。然后,程序员可以创建作为此类的实例的对象。C#中使用class关键字定义类。如下代码定义了一个名为MyClass的类:

class MyClass

2

{ }

同样,对于前面部分中提到的Farmer类,也可以如此定义 class Farmer { }

可以看到,类的定义方式十分简单。

10.2.2 类的构造

类也可以定义自己的构造函数,构造函数需要和包含它的类同名。类可能有多个接受不同参数的构造函数。构造函数使得开发人员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。如下代码定义了一个没有参数的构造函数:

class Farmer {

///

///Farmer类的无参数构造函数 ///

public Farmer() {

Console.WriteLine(\一个新的Farmer类!\ } }

同样也可以定义其他构造函数: public Farmer(string m_Name) {

Console.WriteLine(\一个新的名为{0}的Farmer类!\ }

上述代码定义了Farmer类的另一个构造函数。C#中创建的一类实例由new关键字实现,如下代码将创建一个MyClass类的实例:

using System;

using System.Collection.Generic; using System.Text;

3

搜索更多关于: 第10章 类和对象 的文档
第10章 类和对象.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5zpos6vsv034ka294oz2_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top