收藏 分销(赏)

类、对象、方法、super、self、init方法.doc

上传人:仙人****88 文档编号:11315060 上传时间:2025-07-16 格式:DOC 页数:4 大小:52.50KB 下载积分:10 金币
下载 相关 举报
类、对象、方法、super、self、init方法.doc_第1页
第1页 / 共4页
类、对象、方法、super、self、init方法.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
类、对象、方法、super、self、init方法 一、 类 声明类的语法: @interface 类名 : 被继承类<协议,...> [{实例变量;}] [实例方法声明] @end 实现类的语法: @implementation 类名 [实例方法实现] @end 例子: Car.h #import <Foundation/Foundation.h> @interface Car : NSObject{ NSString *name; int number; } -(NSString*) name; -(void) setnumber:(int) number; @end/*Car*/ Car.m #import "Car.h" @implementation Car -(NSString*) name{ return @"BWM"; } -(void)setnumber:(int) num{ number = num; return number; } @end 说明: 1、 允许有空类和空实现。 二、 对象(instance) 创建对象两种语法: 1、 类名 *对象指针名 = [[类名 alloc] init]; 2、类名 *对象指针名 = [类名 new];(Objective-C 2.0以后支持) 说明: 1、两种写法在功能上完全相同。 三、 方法(methods) 实例方法声明语法: -(返回类型) 方法名[:(参数类型) 参数名 方法名:(参数类型) 参数名...] 类方法声明语法: +(返回类型) 方法名[:(参数类型) 参数名 方法名:(参数类型) 参数名...] 说明: 1、 类方法不能访问实例变量,但可以访问静态变量。 2、 实例方法中获取实例变量值getter不加get,并且与实例变量同名。 3、 实例方法中设置实例变量值setter可以加set,例如setnumber。 4、 开头的负号(-)通知Object-C编译器,该方法是一个实例方法。 5、 类方法不需要实体就可以调用。 6、 实例方法总是可以直接访问实例变量。 例子: /** * total.h * 本程序目的:统计创建了多少实例对象 **/ #import <Foundation/Foundation.h> static int count; @interface Total : NSObject +(int) initCount; +(void) initialize; @end/*Tatal*/ /** * total.m **/ #import "total.h" @implementation Total -(id) init{ self = [super init]; count++; return self; } +(int) initCount{ return count; } +(void) initialize{ count = 0; } @end /** * main.m */ #import "total.h" int 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); } 四、 super 五、 self self相当于C++中的this指针,它也是用于指向当前对象的一个指针。值得注意的是,每次向方法传递消息的同时,self也会跟随作为参数传过去。Objective-C内部对方法接收了这个隐藏参数,所以在方法中可以使用self。例如: -(int) number{ return number; } -(void) printCarNumber{ NSLog(@"The car's number is %i",[self number]); } 六、 init方法 init方法是创建对象时必须调用的一个方法,相当于C++中的构造函数。我们可以根据自己的需要重写这个方法。例如: -(id) init{ self = [super init];//必须先call父类,实际上是先构造父类,因为只有构造父类好后才可能构造子类。这是Objective-C的标准写法。 if(self){//如果构造失败,返回nil,表示空对象 [self setLevel:0]; } return self; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服