欢迎来到天天文库
浏览记录
ID:51587988
大小:225.00 KB
页数:35页
时间:2020-03-24
《面向对象的编程技术.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#程序设计语言课程内容第一章:概述第二章:C#语言的基本原理第三章:C#中对象的创建第四章:面向对象的编程技术第五章:C#编程第六章:编写基于.NET的应用程序第七章:使用ADO.NET访问数据第八章:创建基于Windows的应用程序第九章:在C#应用程序中使用XMLWebService第十章:创建Web应用程序十一章:应用程序设置和部署十二章:进阶学习目标面向对象编程的优点以对象为中心无序算法以过程为中心有序算法标准单元单一单元可重用一次性使用隐藏数据公开数据12345面向对象的编程技术内容:设计对象继承性多态性C#设计对象学习完本节后,你将能够:在对象中封装信息使用属性管理
2、对封装数据的访问封装性将类的某些数据和操作这些数据的代码隐藏起来,这就是封装封装的好处:可以隐藏类实现的细节简化用户的使用易于软件的更新、修订、维护。可以修改内部实现,但不影响用户的使用访问修饰符使用访问修饰符,可以定义应用程序中类成员的作用域(可见性)声明定义public不限制访问private只能从包含的类中访问internal从类型所在的assembly访问protected包含的类或继承的子类可以访问protectedinternal包含的类、继承的子类或类型所在assembly可以访问属性属性是“聪明”的字段,“特殊”的方法定义属性类似于定义一个方法,但使用属性时如同使
3、用一个字段classCat{publicstringname;publicintage;}staticvoidMain(){Catcat1=newCat();cat1.age=-13;//错误}创建属性语法:public
4、protected数据类型属性名{get{//get访问器,获取属性的代码}set{//set访问器,设置属性的代码}}创建属性示例:publicclassCat{privateintage;publicintAge{get{returnage;}set{if(value<=0
5、
6、value>=20)……报告出错elseage=value;}}使用属性示例:Ca
7、tcat1=newCat();cat1.Age=1;//使用Age属性的set访问器intn=Cat.Age;//使用Age属性的get访问器cat1.Age=100;//收到错误消息属性如果只提供了get{},没有set{},这样的属性为只读属性如果只提供了set{},没有get{},只写属性优点:属性在使用时类似于类的字段,简单属性在实现时类似于方法,可以编写代码控制用户对数据的存、取,增加安全性检查可以设置只读或只写属性练习参见教材P101页4.1.4课堂练习10分钟编写和使用属性面向对象的编程技术内容:设计对象继承性多态性C#继承性定义基类创建派生类创建密封类继承“A”i
8、sakindof“B”,猫是一只动物,阿土仔是一个人“A”isakindof“B”,说明B是A的一个父类,A是B的子类(基类/派生类)子类无条件的接收父类具有的特性,包括属性和方法,这就叫做继承继承允许把公共的属性和方法包含在基类中得到重用,此外,子类还可以添加自己的特性利用继承,可以以现有的类为基础,创建出新的类,实现了代码的重用继承继承描述了“是什么种类”(isakindof)的关系派生类从基类继承属性和方法,实现了代码重用派生类变得更专门化在C#中只支持单一继承,即每个子类只能有一个父类父类子类动物大象猫派生类示例:动物园需要管理3种动物,羚羊,狮子,大象publiccla
9、ssAntelope{publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}}publicclassLion{publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}publicvoidStalkPrey(){…}}publicclassElephant{publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}publicintCarrayCapacity;}publicclassAnimal{
10、publicboolIsSleeping;publicvoidSleep(){…}publicvoidEat(){…}}publicclassAntelope:Animal{}publicclassLion:Animal{publicvoidStalkPrey(){…}}publicclassElephant:Animal{publicintCarrayCapacity;}派生类示例:publicclassAnimal{protectedboolIsSleeping;public
此文档下载收益归作者所有