C#面向对象的编程技术

C#面向对象的编程技术

ID:36709159

大小:495.00 KB

页数:34页

时间:2019-05-10

C#面向对象的编程技术_第1页
C#面向对象的编程技术_第2页
C#面向对象的编程技术_第3页
C#面向对象的编程技术_第4页
C#面向对象的编程技术_第5页
资源描述:

《C#面向对象的编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章面向对象的编程技术面向对象的编程技术内容:设计对象继承性多态性C#2设计对象3.1学习完本节后,你将能够:在对象中封装信息使用属性管理对封装数据的访问3封装性3.1.2将类的某些数据和操作这些数据的代码隐藏起来,这就是封装封装的好处:可以隐藏类实现的细节简化用户的使用易于软件的更新、修订、维护。可以修改内部实现,但不影响用户的使用4访问修饰符使用访问修饰符,可以定义应用程序中类成员的作用域(可见性)声明定义public不限制访问private只能从包含的类中访问protected包含的类或继承的子类可以访

2、问protected包含的类、继承的子类可以访问5属性3.1.3属性是“聪明”的字段,“特殊”的方法定义属性类似于定义一个方法,但使用属性时如同使用一个字段classCat{publicstringname;publicintage;}staticvoidMain(){Catcat1=newCat();cat1.age=-13;//错误}6创建属性3.1.3语法:public

3、protected数据类型属性名{get{//get访问器,获取属性的代码}set{//set访问器,设置属性的代码}}7创建属性3.1

4、.3示例:publicclassCat{privateintage;publicintAge{get{returnage;}set{if(value<=0

5、

6、value>=20)……报告出错elseage=value;}}8使用属性3.1.3示例:Catcat1=newCat();cat1.Age=1;//使用Age属性的set访问器intn=Cat.Age;//使用Age属性的get访问器cat1.Age=100;//收到错误消息9属性3.1.3如果只提供了get{},没有set{},这样的属性为只读属性如果

7、只提供了set{},没有get{},只写属性优点:属性在使用时类似于类的字段,简单属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查可以设置只读或只写属性10练习10分钟编写和使用属性3.1.411面向对象的编程技术内容:设计对象继承性多态性C#12继承性3.2定义基类创建派生类创建密封类13继承3.2.1“A”isakindof“B”,猫是一只动物,阿土仔是一个人“A”isakindof“B”,说明B是A的一个父类,A是B的子类(基类/派生类)子类无条件的接收父类具有的特性,包括属性和

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

9、oidSleep(){…}publicvoidEat(){…}}publicclassLion{publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}publicvoidStalkPrey(){…}}publicclassElephant{publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}publicintCarrayCapacity;}publicclassAnimal{publ

10、icboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}}publicclassAntelope:Animal{}publicclassLion:Animal{publicvoidStalkPrey(){…}}publicclassElephant:Animal{publicintCarrayCapacity;}16派生类3.2.2示例:publicclassAnimal{protectedboolIsSleeping;publicvoidSleep(){}

11、publicvoidEat(){}}publicclassLion:Animal{publicvoidStalkPrey(){}}...LionadoptedLion=newLion();adoptedLion.StalkPrey();adoptedLion.Eat();17base关键字3.2.3base指代一个对象的父类/基类当子类中的成员与父类成员重名是,父类的成员被隐藏base

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。