@property`self & super

@property

之前每声明一个实例变量都要进行设置响应的set /get 方法;通过property来声明可以不用写了;编译器会将方法(set/get)和实例变量声明好。

@property NSString *itemName;

如果set get方法中有逻辑,需要在类的实现文件中添加自定义的set get方法

self:

1.self是什么鬼? super 又是什么鬼? [super init]???又特么啥玩意?

@implementation Son : Father
-(id)init
{  
self=[super init ] ;
if(self){
    }
return self ;
}


子类实现初始化之前调用父类的init 实现

1.self 和 super 究竟啥玩意?

1.1
动态方法中,self 表示 “对象”
静态方法中,self表示 “类”
一句话KO: self 就是当前方法的调用者
########self 是隐藏的参数变量 指向当前方法调用的对象(类是特殊的对象)

1.2

然而super只是一个编译器指示符

2.[super init] 在上面程序中又搞了哪些小动作?

其实就是当前类或者对象
例如:

@interface Father :NSObject
-(void)currentClass;
@end

@implementation Father
-(void)printCurrentClass{
NSLog(@"Father current class is %@",[self class]);
@end


//:然后再有一个类继承至Father
@interface Son : Father
  -(void)printCurrentClass;
@end
//:拥有一个相通的方法  检测两者输出的类是否相同
@implementation Son
  -(void)printSuperClass{
[super PrintCurrentClass];
}
@end

//:测试
Son*son=[Son alloc]init];
[son printCurrentClass]; //直接调用父类方法
[son printSuperClass];   //间接调用父类方法

//:当然输出的结果可想而知都是Son


运行结果 2016-04-16 10.11.10.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,855评论 0 9
  • 今天, 仍下着微微细雨, 我, 暗暗叹息, 你, 依旧淡然地斜视着我, 嘴角, 一丝安慰的笑容, ...
    悦棂嘻诺阅读 2,463评论 0 1
  • 原理是 创建一个本地服务器,访问本地服务器,监控到 接口请求转发到目标服务器,如果是资源请求,则直接返回本地资源
    小枫学幽默阅读 5,861评论 0 3
  • 这是个数论题,题目给出两个正整数a,b;让我们寻找两个正整数X,Y,其满足X+Y=a,LCM(X,Y)=b;这个题...
    陌路晨曦阅读 2,828评论 0 0
  • 黄佟佟去年3月发表一篇博文,题目为《闪开,让我闪回到八十年代!》 文中写到:“大家都说姜还是老的辣,人还是旧的好,...
    Gesili阅读 1,917评论 0 0