C#第6章 面向对象的程序设计4H

上传人:豆浆 文档编号:47354826 上传时间:2018-07-01 格式:PPT 页数:51 大小:770.50KB
返回 下载 相关 举报
C#第6章 面向对象的程序设计4H_第1页
第1页 / 共51页
C#第6章 面向对象的程序设计4H_第2页
第2页 / 共51页
C#第6章 面向对象的程序设计4H_第3页
第3页 / 共51页
C#第6章 面向对象的程序设计4H_第4页
第4页 / 共51页
C#第6章 面向对象的程序设计4H_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《C#第6章 面向对象的程序设计4H》由会员分享,可在线阅读,更多相关《C#第6章 面向对象的程序设计4H(51页珍藏版)》请在金锄头文库上搜索。

1、面向对象的程序设计Visual C# Programming聊城大学 理工学院 曹银杰 第六章:面向对对象的程序设计设计面向对象的最基本的特征是抽象性、 封装性、继承性和多态性。F6.1 类的抽象与封装 F6.2 数据成员属性 F6.3 方法成员 F6.4 类的继承性 F6.5 类的多态性 F6.6 委托类型 F作业6.1 类类的抽象与封装F对象是系统中用来描述客观事物的一个实体,它是构成系 统的一个基本单位。F抽象:把具有相同属性和方法的对象划为一类,得到一个 抽象的概念-类,如int是对所有整数的抽象。F封装:就是把对象的属性、方法、事件结合成一个独立的 单位(类或结构)。F封装的意义在于

2、可以指定其每个成员对于该类(或结构) 外部的可访问性,可将外部不使用的数据、方法隐藏起来 ,以减小编码错误或遭恶意利用的可能性。FC#提供了许多功能强大的类定义方式,如提供不同的访问 级别,从其他类继承功能,允许实例化或销毁类型等。1、类的声明体现封装性F类的声明:访问修饰符 class 类名 :基类名 /数据成员(常量、字段、属性)/方法成员、构造函数和析构函数/事件成员 F类的访问修饰符有两种: Public,访问不受限制,可省略,本程序集(项目)和 引用程序集中的任意位置都可以使用该类; Internal,本程序集(项目)范围内使用该类; F类的访问修饰符后可加修饰符: partial,

3、分部类,同一命名空间中可以声明同名的类 写不同的成员,编译时合为一个类。 static,为静态类,只能包含静态成员,不能实例化 。直接使用:静态类名.静态成员名 。类的声明体现封装性F成员的五种访问修饰符体现外部的可访问性: Fpublic:公共成员,本命名空间或引用该命名空间的范 围可以访问该成员。 Fprotected:受保护成员,可跨程序集(项目)的本类或 其派生类可以访问该成员。 Finternal:内部成员,当前程序集可以访问该成员。 Fprotected internal:当前程序集中本类或其派生类可 以访问该成员。 Fprivate:(可省略)私有成员,最低访问级别,只有在 声明

4、它们的类、结构体中才可访问。F类成员访问修饰符后跟static的为静态成员。静态成员 属于类或静态类,不属于类的对象。实例1:创建类及使用F在窗体上创建文本框、按钮;进入代码编辑窗口,与窗体类 并列位置创建Student1类:class Student1/ 数据成员定义列表public string name;private uint age;protected char sex;internal string telephone;public string grade;/方法成员定义列表/事件成员定义列表也可创建独立的类模块文件F添加类模块文件:在“项目”“添加类”,弹出对 话框;也可以在方

5、案窗口的项目上右键菜单。F模板:选“类”; F名称(N):改为 Student2 ;F即可生成一个类模块文件 student2 .cs ;F按上例把类代码写入即可。实例1:创建类及使用private void button1_Click(object sender, EventArgs e)Student1 obj1 = new Student();obj1.name = “张三“;obj1.grade = “聊大理工学院2015级“;obj1.telephone=“13900000000“;textBox1.Text = obj1.name + obj1.grade+obj1 .teleph

6、one ;/其他类型的成员此处不可用,为什么?第六章:面向对对象的程序设计设计面向对象的最基本的特征是抽象性、 封装性、继承性和多态性。F6.1 类的抽象与封装 F6.2 数据成员属性 F6.3 方法成员 F6.4 类的继承性 F6.5 类的多态性 F6.6 委托类型 F作业6.2 数据成员员属性FC#数据成员:包括字段、常量、属性。 F属性:类中私有或保护字段,外部不可直接访问,可用属 性访问器 get 和 set访问,称带有属性访问器的字段为属性 。属性访问器可以说是一种特殊的方法,对字段访问。只含get的称只读属性,只含set的称只写属性,都包含的 称可读写属性。F属性是对现实世界中对象

7、静态特征的抽象,它提供了对类 或对象性质的访问,体现了对象的封装性。F成员修饰符后跟static声明的属性是静态属性,不能实例化 而直接使用:类名.静态属性名实实例2:属性访问访问器class Student private string name; / name 属性成员定义public string Name / Name 第1字母大写,属性可读写set name = value; / set通过value关键字赋值get return name; / get通过return关键字返回属性值 private uint age; public uint Age / Age 第1字母大写,只写

8、属性set age = value; protected char sex;internal string telephone;public string grade;实实例2:属性访问访问器F上述做法与使用public定义字段似乎没什么意义,其实我们 可以写出更完善的代码,如下所示: public string Nameset if (value.Length =2)name = value;else name =“名字不完整“; get return name; private void button1_Click(object sender, EventArgs e) Student o

9、bj1 = new Student();obj1.Name = “张三“;textBox1.Text = obj1.Name ; / = obj1.Age.ToString ();错 ,?第六章:面向对对象的程序设计设计面向对象的最基本的特征是抽象性、 封装性、继承性和多态性。F6.1 类的抽象与封装 F6.2 数据成员属性 F6.3 方法成员 F6.4 类的继承性 F6.5 类的多态性 F6.6 委托类型 F作业6.3 方法成员员F方法是类或结构中用于执行计算或其它行为的成员, 前面学习过方法的定义。 6.3.1 方法的定义与调用 6.3.2 方法的参数传递 6.3.3 方法重载与运算符重载

10、 6.3.4 构造函数与析构函数6.3.1 方法的声明与调用F方法声明语法: 访问修饰符 返回值类型 方法名(形参) /方法实现部分; return 返回值表达式; F访问修饰符:public、 private、protected、internal 、 protected internal; F访问修饰符后可跟选:static(声明静态方法)、 virtual(声明 虚方法) 、 abstract(声明抽象方法) 、override(复写虚方法 和抽象方法)具有特殊意义,以后介绍; F返回值数据类型,无返回值的用void。实例:方法的声明与调用F静态方法调用语法: 类名.静态方法名(实参);

11、F实例化方法调用语法: 对象名.方法名(实参); F在Student类中增加一个无返回值的say方法:public void say() MessageBox.Show(“聊城大学!“); F方法调用,弹出一个信息框:private void button1_Click(object sender, EventArgs e) Student obj1 = new Student();obj1.say(); 实例:返回值方法的定义与调用F在Student类中增加一个返回值的方法:public int Sum( int x , int y)int s = x + y;return s; /返回值给

12、SumF返回值的方法方法调用:private void button1_Click(object sender, EventArgs e)Student obj1 = new Student();MessageBox .Show (obj1.Sum(10, 6).ToString();/实参与形参一一对应6.3.2 方法的参数传递F参数传递就是调用方法时将实参传递给形参的过程,分 为按值传递与按引用传递。F1、按值传参(值类型、 string和object型)F2、按引用传参(值类型、 string和object型使用ref)F3、输出参数F4、引用类型数据的传参( 除string和objec

13、t外 )F5、数组型数据的传参1、按值传参F按值传参:把实参变量的值赋给相对应的形参变量。 被调用的方法所接收到的只是实参数据值的一个副本,是一种单向值传递。F值类型的参数在传递时默认为按值传参。Fstring和object( .NET 中所有类的最终基类)虽然是引用类型数据,但从表现形式来看,其具有按值传参的效果。F系统提供的静态方法都是按值传参的。F有返回值时使用return返回值或一个数组(贪心算法实例)。实例4-4:按值传参两个值交换private void button1_Click(object sender, EventArgs e)string a = textBox1.Tex

14、t;string b = textBox2.Text;swap1(a, b);textBox3.Text = a;textBox4.Text = b; public void swap1(string x , string y)string z;z = x;x = y;y = z;2、按引用传参F按引用传参:调用方将把实参变量的引用赋给相对应的 形参变量。 F实参变量的引用代表数据值的内存地址,因此,形参变 量和实参变量将指向同一个引用。 F方法内部形参变量的变化时,实参随之变化,从而实现 返回多个值。 F无需再使用return语句返回值。 F当值类型和string类型参数要按引用方式传参时,

15、就必须 在实参或形参的前面添加 ref 关键字。实例4-5:按引用传参两个值交换private void button2_Click(object sender, EventArgs e)string a = textBox1.Text;string b = textBox2.Text;swap2( ref a , ref b);textBox3.Text = a;textBox4.Text = b; public void swap2( ref string x , ref string y)string z;z = x;x = y;y = z;实参与形参均使用 ref !3、输出参数F一般都是实参把值传给形参,但有时传参之前无法确定实 参值,其值由方法调用结束后返回。 F输出参数:通过out关键字把方法中的数据通过形参返回 给实参,实参与形参前必须添加 out 。 F输出参数的实参无需先初始化,其实传参前也不知道其值 ,目的就是调用方法时,再返回其值,结合下例理解。 F实例4:用输出参数求文件路径中的目录和文件名。输入路径文件名返回路径、文件名实例4-6:用输出参数求文件路径中的目录和文件名private void button1_Click(object sender, EventArgs

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

当前位置:首页 > 行业资料 > 其它行业文档

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