欢迎来到天天文库
浏览记录
ID:34960749
大小:374.20 KB
页数:20页
时间:2019-03-15
《第5章面向对象编程基础》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第5章面向对象编程基础C#编程语言是一种面向对象编程语言。日常生活中的大多数事物都可以称为对象,如一条鱼、一只狗、一头牛和一块石头等,都可以称为对象。而类是一种对象的共有属性和操作,如一个定义狗的类,可以有狗的品种、年龄、体长和价格等属性。本章主要介绍类的定义和构成,以及类和对象的应用等。本章学习目标:“理解类的组成结构。“掌握类和对象的区别。“理解可访问性。“掌握字段和属性的用法。“掌握方法的使用。“理解构造函数。“理解析构函数。5.1类简介与生活中的类一样,程序中的类描述了一种对象。如在一个学生选课类
2、中,可以有学生科目成绩这些数据,可以有根据学生成绩计算学生学分的操作。数据和操作构成了类,但这些数据并不是有着明确值的,而是类中的变量,在类中作为字段或属性存在;而操作是类中的方法,实现特定的功能。不同的学生被作为学生选课类的不同实例,可以直接调用类中的属性和方法,获取需要的操作。5.1.1类概述之前曾介绍过字符串的声明,需要使用string关键字。string关键字实质上是类的名称(别名,原名为String),通过string关键字定义的字符串,相当于String类的实例。类是C#中功能最为强大的数据类
3、型,它定义了有着数据类型的数据和行为。在创建了类之后,类中的数据和方法可以直接或间接被使用。类的定义或声明使用class关键字,在定义时,需要指定类的可访问性,语法格式如下:publicclass类名{}对上述代码的解释如下所示。C#实践教程(第2版)“class前面的public关键字属于访问修饰符,用于指定类的受限制程度。访问修饰符除了public,可以使用private、protected和internal。“类的名称位于class关键字的后面,命名规则同变量一样,通常将类的首字母大写。“类的主体定
4、义放在大括号{}内,包含类的数据成员和方法。省略主体即为类的声明,同变量声明性质一样。“类成员的声明和使用,与Main()函数中的使用一样。“类的声明和定义,在大括号外都不需要分号结尾。类除了定义一种类型的数据和行为,还有着封装、继承和多态的特性。对这三种特性的概述如下所示。“封装封装隐藏了类和对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。类提供了三种可选访问级别:public、protected和private,通过设定不同数据访问级别,自定义数据的访问权限,达到保护数据和
5、共享数据的统一。“继承类的继承是指在原有类的基础上,添加新的数据和行为,构成一个新的类。类的继承提高了代码的可重用性,减轻了开发人员的负担。如现有哺乳类,该类中定义了哺乳类的共性(胎生、脊椎动物等)。那么在这个类的基础上,可以有老虎和兔子这两个类,这两个类在有着哺乳类共性的同时,又有着各自112的特性;因此可以继承哺乳类,在其基础上添加新的数据和行为。被继承的原始的类称作基类;继承了基类,而添加新的数据和行为的类称作派生类。“多态多态建立在继承的基础上,除了在基类的基础上增加数据和方法;还可以重新定义基类
6、中的方法,使该方法更有针对性。5.1.2类的成员类中包含数据和行为,数据使用字段和属性来控制;行为定义为方法。在访问类时,首先默认执行类的构造函数,构造函数用于将类成员初始化(将类的字段和属性初始化);在类的访问结束后执行析构函数,释放资源。类的主体成员有字段、属性、方法、构造函数和析构函数。对类成员的解释如下所示。“字段的用法相当于类中的变量,被视为类的一部分的对象实例,通常保存类数据。“属性是一种特殊的方法,可以像字段一样被访问。属性可以为类字段提供保护,避免字段在对象不知道的情况下被更改。“方法定义
7、可以执行的操作。方法可以使用变量作为参数,接受提供输入数据的参数,并且可以通过参数返回输出数据。方法还可以不使用参数而直接返回值。“构造函数是在第一次创建对象时调用的方法。它们通常用于初始化对象的数据。“析构函数是当对象即将从内存中移除时由执行引擎调用的方法。它们通常用来确保需要释放的所有资源都得到了适当的处理。如定义一个计算器类Class1,包含类的字段num、方法addnum()、构造函数Class1()第5章面向对象编程基础和析构函数Class1(),如练习5-1所示。【练习5-1】定义计算器类,定
8、义addnum()方法,接收变量addnum()表示每次累加的数,变量count表示累加的次数,计算变量累加结果;定义内部变量num,表示addnum()方法最终累加的数值,代码如下:classClass1//定义类{privateintnum;//字段:定义类的变量publicClass1()//构造函数:初始化变量{num=0;}publicintaddnum(intaddnum,intcount)//方法:定义类的操作{
此文档下载收益归作者所有