欢迎来到天天文库
浏览记录
ID:36709159
大小:495.00 KB
页数:34页
时间:2019-05-10
《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
此文档下载收益归作者所有