A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© cctao 中级黑马   /  2014-10-26 23:36  /  906 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


问题:类方法中可以调用对象方法么?对象方法中可以调用类方法么?这个在我学习的时候有想过,后来看了MJ老师的基础视频,里面有一个实例就解决了我的疑惑:可以!!我们假设现在有一个Person类,内有年龄属性
上例:
1,写一个对象方法比较与另一个对象比较年龄
2,写一个类方法比较2个对象年龄
1,- (int ) compareAge:(Person * )p
{
return [self age]-[p age];
}
2,+(int ) compareAge:(Person * )p withOther :(Person * )p2
{
return [p age]-[p2 age];
}
有没有发现其实在类方法跟对象方法中他们内部实现基本一样,那为什么我们要重复些俩遍呢?
修改如下:
1,- (int ) compareAge:(Person * )p
{
return
[Person  compareAge:self withOther:p];
}
2,+(int ) compareAge:(Person * )p withOther :(Person * )p2
{
return [p age]-[p2 age];
}
或者:
1,- (int ) compareAge:(Person * )p
{
return [self age]-[p age];
}
2,+(int ) compareAge:(Person * )p withOther :(Person * )p2
{
return [p compareAge:p2];
}
也许你会认为这样代码一点也没有少写,那是因为我的例子太简单,当有一天你碰到实例中有一大串代码要重复,你会发现这是一个多么了不起的用法呀。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马