类、对象、方法、super、self、init方法.doc_第1页
类、对象、方法、super、self、init方法.doc_第2页
类、对象、方法、super、self、init方法.doc_第3页
类、对象、方法、super、self、init方法.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类、对象、方法、super、self、init方法1、 类声明类的语法: interface 类名 : 被继承类 实例变量; 实例方法声明 end实现类的语法: implementation 类名 实例方法实现 end例子:Car.h#import interface Car : NSObject NSString *name; int number; -(NSString*) name; -(void) setnumber:(int) number;end/*Car*/Car.m#import Car.himplementation Car -(NSString*) name return BWM; -(void)setnumber:(int) num number = num; return number; end说明:1、 允许有空类和空实现。2、 对象(instance)创建对象两种语法:1、 类名 *对象指针名 = 类名 alloc init;2、类名 *对象指针名 = 类名 new;(Objective-C 2.0以后支持)说明:1、两种写法在功能上完全相同。3、 方法(methods)实例方法声明语法:-(返回类型) 方法名:(参数类型) 参数名 方法名:(参数类型) 参数名.类方法声明语法:+(返回类型) 方法名:(参数类型) 参数名 方法名:(参数类型) 参数名.说明:1、 类方法不能访问实例变量,但可以访问静态变量。2、 实例方法中获取实例变量值getter不加get,并且与实例变量同名。3、 实例方法中设置实例变量值setter可以加set,例如setnumber。4、 开头的负号(-)通知Object-C编译器,该方法是一个实例方法。5、 类方法不需要实体就可以调用。6、 实例方法总是可以直接访问实例变量。例子:/* * total.h * 本程序目的:统计创建了多少实例对象 */ #import static int count; interface Total : NSObject +(int) initCount; +(void) initialize; end/*Tatal*/* * total.m */#import total.himplementation Total-(id) initself = super init;count+;return self;+(int) initCountreturn count;+(void) initializecount = 0;end/* * main.m */#import total.hint main(int argc,const char* argv)Total *total1 = Total alloc init;Total *total2 = Total alloc init;NSLog(there are %i instances.,Total initCount);total1 release;total2 release;return (0);4、 super5、 self self相当于C+中的this指针,它也是用于指向当前对象的一个指针。值得注意的是,每次向方法传递消息的同时,self也会跟随作为参数传过去。Objective-C内部对方法接收了这个隐藏参数,所以在方法中可以使用self。例如:-(int) numberreturn number;-(void) printCarNumber NSLog(The cars number is %i,self number);6、 init方法init方法是创建对象时必须调用的一个方法,相当于C+中的构造函数。我们可以根据自己的需要重写这个方法。例如:-(id) initself = super init;/必须先call父类,实际上是先构造父类,因为只有构造

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论