C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章 面向对象程序基础

上传人:E**** 文档编号:89386401 上传时间:2019-05-24 格式:PPT 页数:81 大小:3.11MB
返回 下载 相关 举报
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章  面向对象程序基础_第1页
第1页 / 共81页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章  面向对象程序基础_第2页
第2页 / 共81页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章  面向对象程序基础_第3页
第3页 / 共81页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章  面向对象程序基础_第4页
第4页 / 共81页
C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章  面向对象程序基础_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章 面向对象程序基础》由会员分享,可在线阅读,更多相关《C#应用程序设计 教学课件 ppt 作者 韦鹏程 张伟 朱盈贤 第5章 面向对象程序基础(81页珍藏版)》请在金锄头文库上搜索。

1、C# 程序设计,第5章 面向对象程序基础,目 录,第5章 面向对象程序基础,本章介绍了面向对象程序设计中最基础的概念,包括类的概念,对象的概念,字段的概念,属性的概念,方法的概念,方法参数的传递,方法的重载,构造函数的概念,构造函数的重载,静态成员的概念等。,5.1 类与对象,类,逻辑学上将其定义成对现实世界中各类实体的抽象概念。 面相对象程序设计中的类的概念,从本质上也和现实生活中的类是一致的,我们把程序设计中遇到的同一种类的数据,以及对这些数据的操作抽象出来,定义成一个类。 从数据定义的角度来看类,可以把类看成是一种特定的数据类型,只不过这种数据类型和我们前面遇到过的基本数据类型(如int

2、,float等)是有差别的,差别就在于“类”类型的定义不仅仅包括对数据特征的说明,还包括对该类数据能进行的操作的说明。 “类”这种特殊类型的生成,也有两个来源:一种是由系统提供并预先定义好的;另一种是用户自己定义的。,5.1 类与对象,“类”这种特殊的数据类型,也要通过声明它自己的“变量”来使用,这个“变量”就是所谓的“对象”。对象一旦由类创建(实例化),则该对象就拥有了类中定义的所有成员,即有了该类的数据特征,有了该类定义的数据操作方法。 一个类可以声明无数个该类的对象,这些对象既然都是由一个类声明的来,那也都拥有相同的数据特征,以及相同的对数据的操作方法,不同的是每个对象都会有自己特别的数

3、据特征值,这也是我们区分各个对象的依据。,5.1 类与对象,既然类这种数据类型是由数据和对数据的操作封装在一起构成的,那么构成类的成员就有两种:保存数据的成员和操作数据的成员。保存数据的类成员又被称作“字段”,操作数据的类成员又包含“属性”、“方法”和“构造函数”。,5.2 字段,字段是类定义中的数据部分,它是表示与对象或类关联的变量,用来存储对象状态的值或者属性的值。类的字段可以是基本数据类型的值,也可以是其他类类型声明的对象,例如创建的Windows应用程序中,向窗体类添加的各种各样的控件对象,就是窗体类的字段。,5.2 字段,任务5.1 改写BMI计算器 修改BMI计算器。BMI计算器对

4、象,具有体重、身高属性,每一次计算BMI,都要输入确定的身高、体重,它们的值可能不同。所以BMI计算器类中,声明两个字段height和weight。程序运行结果如图5-1所示。,5.2 字段,任务5.1 任务实施 (一)创建项目和窗体 (1)创建一个“Windows应用程序”项目。 (2)向窗体上添加三个标签控件,两个命令按钮控件,两个文本框控件,界面布局如图5-2所示,控件的属性值如表5-1所示。,5.2 字段,任务5.1 任务实施 (二)代码的编写 (1) 按F7打开代码视图,在程序代码最后一个右大括号“”的上面,Form1类定义的后面,定义类BMICalculat。 (2) 在Form1

5、类定义的类体中声明BMICalculator类的对象代码。 (3)在设计窗口中的Form1窗体的【设置字段值】按钮上双击,为【设置字段值】按钮添加单击事件代码 。 (4)在设计窗口中的Form1窗体的【显示字段值】按钮上双击,为【显示字段值】按钮添加单击事件代码 。,5.2 字段,任务5.1 任务实施 (三)程序的运行 按下F5键运行该应用程序,在身高、体重文本框中输入相应的数据(正值),点击【设置字段值】,就能为实例化的BMI计算器对象设定相应的字段值;点击【显示字段值】就能将BMI计算器对象的各字段值显示出来,如图5-1所示。,5.2 字段,任务5.1 支撑知识 (一)声明与使用对象 声明

6、对象的一般格式与声明一般数据类型变量的格式相同,格式为: 类名 对象名; 类类型的变量,和数组类型变量一样,也是引用型变量,所以只是声明了类的对象后,并没有实际创建一个类的实体,必须通过“new”关键字将对象实例化,才会在内存中分配保存数据的控件,实例化的语法格式为: 对象名 = new 类名( ); 也可以将声明和实例化写在一起,如任务中的: BMICalculator bmiCal = new BMICalculator();,5.2 字段,任务5.1 支撑知识 (二)类的封装 类是将数据和对数据的操作封装在一起的一种特殊数据类型,所以由类声明得到的对象,也是一个被“封装”起来的变量,对对

7、象中的数据字段的访问一般是不能直接进行的,都要通过相应的字段访问器(方法)来进行,如本任务中要设置height、weight字段时,调用了每个字段的Set方法: / 设置对象的字段值 bmiCal.SetHeight(h); bmiCal.SetWeight(w);,5.2 字段,任务5.1 支撑知识 (二)类的封装 要调用字段值时,也是采用的get方法来访问字段: label3.Text = “BMI计算机对象中,身高数据为:“ + bmiCal.GetHeight() + “M 体重数据为:“ + bmiCal.GetWeight() + “Kg”; “封装”使对象能够向用户隐藏它们的实现

8、(信息隐藏的原则),用户可以使用对象提供出来的接口(访问器方法)来使用它。隐藏类(对象)的实现详细信息可以防止这些信息被以不希望的方式使用,并使用户在以后修改此类时没有兼容性方面的问题。,5.2 字段,任务5.1 支撑知识 (三)访问控制 访问修饰符用来控制对类的字段、属性和方法等成员的访问权限。C#中最常用的访问修饰符及其意义如表5-2所示。 如果一个类成员被声明为public(公有的),那用户在声明了该类的一个对象后,可以直接使用 对象名.成员名 的方式来访问该成员,例如可以直接给一个公有字段赋值,直接调用类的一个公有方法等。,任务5.1 支撑知识 (三)访问控制 类定义中,声明成员时如果

9、没有使用任何访问修饰符,则默认该成员为private(私有的)。私有的成员不允许在类定义外用点运算符访问。 private类型的成员,只有采用类中定义的方法,才能间接地被访问。这也是类定义中,信息隐藏原则的体现。,5.2 字段,5.3 属性,将类中的字段声明为私有(private),然后采用共有(public)的访问方法来进行访问是大部分面向对象程序设计语言都采用的方式。C#语言,除了字段以外,还提供了一种特别的成员属性。,5.3 属性,任务5.2 使用属性 对任务5.1的BMI计算机程序进行修改,在BMICalculator类中,用属性声明替换访问方法声明,并在窗体类的两个按钮事件代码中使用

10、属性。,5.3 属性,任务5.2 任务实施 (一)创建项目和窗体 与任务5.1一样。 (二)代码的编写 (1) 按F7打开代码视图,在程序代码最后一个右大括号“”的上面,Form1类定义的后面,将Set和Get方法分别用属性来代替。 (2) 在设计窗口中的Form1窗体的【设置字段值】按钮上双击,为【设置字段值】按钮添加单击事件代码。 (3)在设计窗口中的Form1窗体的【显示字段值】按钮上双击,为【显示字段值】按钮添加单击事件代码。,5.3 属性,任务5.2 任务实施 (三)程序的运行 按下F5键运行该应用程序,在身高、体重文本框中输入相应的数据(正值),点击【设置字段值】,就能为实例化的B

11、MI计算器对象设定相应的字段值;点击【显示字段值】就能将BMI计算器对象的各字段值显示出来,如图5-1所示。,5.3 属性,任务5.2 支撑知识 (一)属性的声明 属性是类一种的字段读取器,声明属性的一般格式为: 访问修饰符 类型 属性名get return 字段名; set 字段名 = value; 其中的get和set被成为属性访问器:get完成对数据值的读取,return用于返回读取的值;set完成对数据值的设置,value是关键字,表示要写入的值。 属性名与属性要访问的字段名不能完全一样,通常采用字段名首字母大些的方式,来命名与其对应的属性。,5.3 属性,任务5.2 支撑知识 (一)

12、属性的声明 属性的数据类型和访问权限必须在声明属性的时候定义,而不是在属性访问器中定义,且属性的数据类型和访问权限只能是单一的。 属性的访问器不一定是一定要都具备的,根据属性定义中有无set、get访问器,可以将属性分为3类:只读属性(只有get访问器),只写属性(只有set访问器)和读写属性(有get、set访问器)。,5.3 属性,任务5.2 支撑知识 (二)属性访问器 get访问器相当于一个无参数的方法,该方法的返回值类型、访问权限都与属性的类型和访问权限一致,在get访问器中,返回值作为属性值提供给调用表达式。 在对属性进行访问中,除非该属性称为赋值目标,否则就会直接调用属性的get访

13、问器,读取该属性的值: label3.Text = “BMI计算机对象中,身高数据为:“ + bmiCal.Height + “M 体重数据为:“ + bmiCal.Weight + “Kg”; 就是直接调用属性的get访问器得到字段height与weight的值。,5.3 属性,任务5.2 支撑知识 (二)属性访问器 set访问器相当于一个无返回值的方法,该方法只有1个参数,且该参数的数据类型与属性的类型相同,该方法的访问权限也和属性的一致。 作为赋值目标的属性,自动调用其set访问器,对相关字段赋值: bmiCal.Height = h; 上面的语句调用Height属性的set访问器,对h

14、eight字段赋值h。,5.3 属性,任务5.2 支撑知识 (二)属性访问器 属性没有存储位置,必须用一个字段来存储属性值,但是并不意味着必须为每个属性都声明一个字段,比如当类中包含多个在逻辑上相关的属性时,可以在声明这几个属性时,只声明一个字段。 get访问器中执行的语句,并不是一定只能是returen某一个字段,还可以是返回访问多个字段或调用方法以计算得到的值作为属性值。比如可以设置一个Bmi属性,其get访问器返回的可以是height字段与weight字段计算的结果。 set访问器也不是始终被编写成只修改私有字段的值,更新的值也可以是通过访问多个字段或调用方法计算出的值。,5.3 属性,

15、任务5.2 支撑知识 (三)访问类成员 C#的类成员有字段、属性、方法和常量等。 在类的内部(作用域内)访问,可以直接通过成员的名字来访问对应的成员,如BMICalculator类定义中的Height属性访问器,在访问height字段时,直接使用该字段名称。 在类的外部访问,则必须通过该类或该类的对象名和点操作符以“对象名.成员名”的方式来访问类成员,且该成员的访问权限还必须是publi(公有的),如按钮单击事件中对Height和Weight属性的访问都是采用bmiCal.Height和bmiCal.Weight方式来完成,这里bmiCal是BMI计算器类的一个实例化的对象。 当成员是公有静态

16、成员时,还可以采用“类名.成员名”方式来访问,后续介绍。,5.3 属性,任务5.2 支撑知识 (四)属性 VS 字段 类成员中的字段,在类被实例化为一个对象时,会被分配相应的内存空间,用它来保存对象的数据,而属性成员是不会被分配内存空间的来保存数据的。 为字段赋值,实际就是将数据直接放到字段被分配的内存空间中保存起来;给属性赋值,会将值传递给属性的set访问器的value参数,然后执行set访问器中的代码,常常都是直接将value参数的值赋给某一私有字段。 读取字段的值,只是将给字段分配的内存空间中的值读取出来;读取属性值,会执行属性的get访问器中的代码,该代码段可能只是将某个私有字段中的值返回,也可能是要将多个字段的值进行运算后再返回。,5.4 类的方法,方法就是把一些相关的语句组合在一起,用于解决某个问题的语句块。C#语言中的方法,相当于其他编程语言中的通用过程(Sub过程)或者是函数过程。C#中的方法必须放在类中声明,也就是说方法必须是某一个类的方法。,5.4 类的方法,5.4.1 声明与调用方法 5.4.2 参数传递 5.4.3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号