【Objective-C】OC中对象创建,self,super的详解-创新互联

1:self是类的隐藏的参数,指向当前调用方法的类,另一个隐藏参数是_cmd,代表当前类方法的selector。

我们提供的服务有:做网站、成都做网站、微信公众号开发、网站优化、网站认证、汶上ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的汶上网站制作公司

2:super并不是隐藏的参数,它只是一个"编译器指示符",它和self指向的是相同的消息接受者

3:当使用self调用方法时,会从当前类的方法列表中开始寻找,如果没有,就从父类中再找,而使用super时,则从父类的方法列表中开始找,然后调用父类的这个方法

具体看代码实现方法(详细看代码中的注释)

一:看PersonSelf.h声明文件

// //  PersonSelf.h //  PersonSelf // //  Created by hmjiangqq on 14-1-22. //  Copyright (c) 2014年 hmjiangqq. All rights reserved. //  #import <Foundation/Foundation.h> @class Student;  //@class一般用在头文件中 @interface PersonSelf : NSObject {          //声明两个实例变量     int age;     NSString * name;     Student *s; }  //定义方法 -(NSString *) getName; -(void) setName:(NSString *)_name; -(int) getAge; -(void)setAge:(int)_age; @end
二:PersonSelf.m实现文件

// //  PersonSelf.m //  PersonSelf // //  Created by hmjiangqq on 14-1-22. //  Copyright (c) 2014年 hmjiangqq. All rights reserved. //  #import "PersonSelf.h" #import "Student.h" //#import一般使用在实现文件中 @implementation PersonSelf -(id)init{     if(self=[super init]){  //super可以调用父类中的方法         s=[[Student alloc]init];         NSLog(@"student:%@\n",s);     }     return  self; } -(NSString *) getName{     return  name; } -(void) setName:(NSString *)_name{     name=_name;     [self setAge:14];//self可以去调用本类对象中的方法     NSLog(@"setAge");     NSLog(@"self class is: %@\n",[self class]);     NSLog(@"super class is: %@\n",[super superclass]);      } -(int) getAge{     return  age; } -(void)setAge:(int)_age{     age=_age; } @end

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

文章题目:【Objective-C】OC中对象创建,self,super的详解-创新互联
文章转载:https://www.cdcxhl.com/article22/disdjc.html

成都网站建设公司_创新互联,为您提供定制开发网站设计网站制作外贸建站网页设计公司网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联