面向对象的编程技术 对象和属性等

上传人:qt****68 文档编号:52439434 上传时间:2018-08-21 格式:PPT 页数:34 大小:198.50KB
返回 下载 相关 举报
面向对象的编程技术  对象和属性等_第1页
第1页 / 共34页
面向对象的编程技术  对象和属性等_第2页
第2页 / 共34页
面向对象的编程技术  对象和属性等_第3页
第3页 / 共34页
面向对象的编程技术  对象和属性等_第4页
第4页 / 共34页
面向对象的编程技术  对象和属性等_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《面向对象的编程技术 对象和属性等》由会员分享,可在线阅读,更多相关《面向对象的编程技术 对象和属性等(34页珍藏版)》请在金锄头文库上搜索。

1、 Microsoft C#程序设计语言课程内容第一章:概述 第二章:C# 语言的基本原理 第三章:C# 中对象的创建 第四章:面向对象的编程技术 第五章:C# 编程 第六章:编写基于 .NET 的应用程序 第七章:使用 ADO.NET 访问 数据第八章:创建基于 Windows 的应用程序 第九章:在 C# 应用程序中使 用 XML Web Service 第十章:创建 Web 应用程序 十一章:应用程序设置和 部署 十二章:进阶学习目标4面向对象的编程技术内容: 设计对象 继承性 多态性 Microsoft 设计对象 4.1学习完本节后,你将能够: 在对象中封装信息 使用属性管理对封装数据的

2、访问Microsoft 封 装 性 4.1.2将类的某些数据和操作这些数据的代码 隐藏起来,这就是封装 封装的好处:w 可以隐藏类实现的细节w 简化用户的使用w 易于软件的更新、修订、维护。可以修改内 部实现,但不影响用户的使用Microsoft 访 问 修 饰 符使用访问修饰符,可以定义应用程序中类成员 的作用域(可见性)声明声明定义定义public不限制访问private只能从包含的类中访问internal从类型所在的 assembly 访问protected包含的类或继承的子类可以访问protected internal包含的类、继承的子类或类型所在 assembly 可 以访问Micr

3、osoft 属 性 4.1.3属性是“聪明”的字段,“特殊”的方法 定义属性类似于定义一个方法,但使用 属性时如同使用一个字段class Cat public string name ;public int age; static void Main()Cat cat1 = new Cat();cat1.age = -13; /错误 Microsoft 创 建 属 性 4.1.3语法:public|protected 数据类型 属性名 get /get访问器,获取属性的代码set /set访问器,设置属性的代码 Microsoft 创 建 属 性 4.1.3示例:public class Ca

4、t private int age;public int Age get return age;set if (value=20)报告出错elseage = value; Microsoft 使 用 属 性 4.1.3示例:Cat cat1 = new Cat(); cat1.Age = 1; /使用Age属性的set访问器 int n = Cat.Age; /使用Age属性的get访问器 cat1.Age = 100; /收到错误消息Microsoft 属 性 4.1.3如果只提供了get ,没有set ,这样的属性 为只读属性 如果只提供了set ,没有get ,只写属性 优点:w 属性在

5、使用时类似于类的字段,简单w 属性在实现时类似于方法,可以编写代码控制用户 对数据的存、取,增加安全性检查w 可以设置只读或只写属性Microsoft 练 习1.参见教材P101页4.1.4 课堂练习10 分钟编写和使用属性 4.1.44面向对象的编程技术内容: 设计对象 继承性 多态性 Microsoft 继 承 性 4.2定义基类 创建派生类 创建密封类 Microsoft 继 承 4.2.1“A” is a kind of “B”,猫是一只动物,阿土仔是一个人 “A” is a kind of “B”,说明B是A的一个父类,A是B的 子类(基类/派生类) 子类无条件的接收父类具有的特性,

6、包括属性和方法 ,这就叫做继承 继承允许把公共的属性和方法包含在基类中得到重用 ,此外,子类还可以添加自己的特性 利用继承,可以以现有的类为基础,创建出新的类, 实现了代码的重用Microsoft 继 承 4.2.1继承描述了“是什么 种类” ( is a kind of )的关系 派生类从基类继承属 性和方法,实现了代 码重用 派生类变得更专门化 在C#中只支持单一 继承,即每个子类只 能有一个父类父类子类动物大象猫Microsoft 派 生 类 4.2.2示例: 动物园需要管理3种动物,羚羊,狮子,大象public class Antelopepublic bool IsSleeping;

7、public void Sleep() public void Eat() public class Lionpublic bool IsSleeping;public void Sleep() public void Eat() public void StalkPrey() public class Elephantpublic bool IsSleeping;public void Sleep() public void Eat() public int CarrayCapacity; public class Animalpublic bool IsSleeping;public vo

8、id Sleep() public void Eat() public class Antelope: Animal public class Lion : Animalpublic void StalkPrey() public class Elephant:Animalpublic int CarrayCapacity; Microsoft 派 生 类 4.2.2示例:public class Animal protected bool IsSleeping; public void Sleep() public void Eat() public class Lion : Animal

9、public void StalkPrey() . Lion adoptedLion = new Lion(); adoptedLion.StalkPrey(); adoptedLion.Eat();Microsoft base 关键字 4.2.3base 指代一个对象的父 类/基类 当子类中的成员与父类成 员重名是,父类的成员被 隐藏 base 的作用:w 点取父类中被子类隐藏了 的成员变量w 点取被子类覆盖了的方法w 作为方法名表示父类的构 造函数public Animal public void method1() public class Lion : Animal /将父类的同名方法

10、隐藏public void method1()public Lion() this.method1();base.method1(); Microsoft 密 封 类 4.2.4使用sealed关键字声明密封类 密封类不允许其他类继承该类 密封的方法不允许被覆盖 如果你的类不希望被别人继承、修改,为安全起见, 把它们定义为sealed吧!public sealed class MyClass / class members Microsoft 练 习1.参见教材P108页4.2.5 课堂练习10 分钟创建派生类 4.2.54面向对象的编程技术内容: 设计对象 继承性 多态性 Microsoft

11、 多 态 4.3通过在基类中使用虚方法来实现多态性 创建和使用抽象类Microsoft 多 态 性 4.3.1具有多种不同的形态,这种能力称为多态性 子类继承了父类的特性,但子类在某些细节上各不相 同,多种多样,如何做到这一点呢?Animal 对象 ElephantCatMouse行为Eat GrassEat MouseEat Cheese被调用的 方法Eat ()Eat ()Eat ()Microsoft 编 写 虚 方 法 4.3.2如果希望某个方法的实现能够在子类中进一步得到改 进,那么将方法定义为虚方法 使用virtual关键字定义虚方法这样子类就可以改进从父类继承下来的Eat方法了p

12、ublic class Animal public virtual void Eat() Console.WriteLine(“Eat something“); Microsoft 编 写 虚 方 法 4.3.2如果希望改进父类的某个虚方法,使用override关键字 覆盖父类的方法,提供自己的实现就可以了 当覆盖虚方法时,覆盖的方法必须与被覆盖的方法具 有相同的方法签名这样子类就可以有与众不同的Eat方法了public class Cat : Animal public override void Eat() Console.WriteLine(“Eat mouse !“); Microso

13、ft 虚 方 法 的调 用 4.3.2当调用某个虚方法时,运行时会根据具体对象的类型 ,动态决定调用哪个方法。public class Animal public virtual void Eat() Console.WriteLine(“Eat something“); public class Cat : Animal public override void Eat() Console.WriteLine(“Eat mouse !“); Animal myCat = new Cat(); myCat.Eat(); / 输出:Eat mouse ! Microsoft 多 态 的 实 现 4.3.2动物饲养员 public

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

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