版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十五章:多态、动态类型和动态绑定多态、动态类型和动态绑定多态:来自不同类的对象可以定义共享相同名称的方法动态类型:能使程序直到执行时才确定对象所属的类型动态绑定:能使程序直到执行时才确定要对对象调用的实际方法多态多态:不同类名,相同方法名如:Person类中可以定义eat方法Bird类也可以定义eat方法动态类型:id类型id类型是一个通用的对象类型,可以存储任何对象。声明id类型时不要星号(*)问:如果id类型可以存储任何类型的对象,那么系统如何知道该调用哪一个方法呢?答:Objective-C系统先判断对象所属于的类,并因此确定运行时(而不是编译时)需要动态调用的方法不要养成滥用这种数据
2、类型的习惯静态类型能更好地在程序编译阶段(而不是在运行时)指出错误程序可读性不好id f1; 和Fracrtion f1;有关类的问题这个对象是矩形吗?这个对象支持print方法吗?这个对象是Graphics类或是其子类的成员吗?开始使用包含来自不同类的对象时,可能遇到一下问题:有关类的问题有关类的问题 根据类名或一个对象生成一个class-object,可以发送class消息 Square class;/通过类名声明mySquare class;/通过对象名声明判定两个对象是否在一个类if(obj1 class = obj2 class)-(id)PerformSelector:select
3、orSEL action;id graphicObject;.action = selector (draw);graphicObjectperformSelector: action;有关类的问题SEL action = selector (draw);id graphicObject = myFraction;if(graphicObjectrespondsToSelector:action = YES) graphicObjectperformSelector:actionelse /error handling code here-(BOOL) respondsToSeletor:se
4、lector有关类的问题selector指令:为某个方法生成一个SEL值selector(alloc)selector(setTo:over:)Square instanceOfRespondToSelector:selecor(setSide);有关类的问题#import Fraction.h”#import Complex.h”intmain (intargc, const char * argv) NSAutoreleasePool * pool = NSAutoreleasePoolalloc init;id dataValue;Fraction *myFraction= Fracti
5、on alloc init;myFractionsetNumerator: 2 andDenominator: 5;/first dataValue gets a fractionSEL action = selector (print);dataValue= myFraction;if( dataValuerespondsToSelector:action = YES ) dataValueperformSelector:action; else return 0; pool drain; return 0;使用try处理异常#import Fraction.hint main (intargc, const char * argv) NSAutoreleasePool * pool = NSAutoreleasePoolalloc init; Fraction *f = Fraction alloc init; f nosuchMethod; /编译时警告 NSLog(Execution continues!); f release; pool drain; return 0;try statment statmen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026宣城出租车面试题及答案
- 2026年全国保密教育线上培训考试题库(含答案)
- 2026年知识产权竞赛题库附含答案
- 2026政经哲专业面试题及答案
- 卫生法学期末考模拟试题及答案
- 危险化学品生产单位安全管理人员题库试题及答案
- 体育职业技能鉴定考试试题及答案
- 施工项目管理人员安全生产培训考试题库及答案
- 2026年森林防灭火指挥部事业单位笔试真题(附答案)
- 2026年辽宁省事业单位联考真题及答案
- 舞蹈基础知识考试题库150题(含答案)
- (高清版)DZT 0342-2020 矿坑涌水量预测计算规程
- 四川建筑安全员A证考试题库
- 数字贸易环境下的跨境数据治理机制
- 锂硫电池市场调研报告
- 注塑上下模培训-
- GB/T 32119-2023海洋钢制构筑物复层矿脂包覆腐蚀控制技术
- 温度与水中声速对照表
- 中建幕墙高处防坠落专项方案方案
- ISO9001-2015-中英文对照版
- 《画法几何与阴影透视》第8章 轴测投影
评论
0/150
提交评论