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

创新互联拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站设计、网站建设、外贸网站建设、网站维护、联通服务器托管解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、购物商城网站建设、政府网站等各类型客户群体,为全球成百上千企业提供全方位网站维护、服务器维护解决方案。

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 @classStudent;//@class一般用在头文件中@interfacePersonSelf: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一般使用在实现文件中@implementationPersonSelf-(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;[selfsetAge:14];//self可以去调用本类对象中的方法NSLog(@"setAge");NSLog(@"self class is: %@\n",[selfclass]);NSLog(@"super class is: %@\n",[super superclass]);}-(int) getAge{return  age;}-(void)setAge:(int)_age{     age=_age;}@end