黑马程序员技术交流社区
标题:
类方法和对象方法的区别
[打印本页]
作者:
x65396731
时间:
2014-8-14 12:34
标题:
类方法和对象方法的区别
今天看了关于NSString的分类方法视频
其中
//用类方法计算字符串中数字的个数
+ (int)numberCountOfString:(NSString *)str;//这是声明
我不明白类方法不是不需要实例才可以使用的方法吗?为什么这里需要传一个实际参数给它
另外在实现中有一句
【str characterAtUbdex: 参数】//这是一个对象方法
在类方法中调用一个对象方法不是和类方法的本质有冲突吗?类方法不是只能够通过类名调用的吗?
谢谢。
作者:
cjfire
时间:
2014-8-14 13:34
对象方法才需要实例来调用,类方法不用吧?!
还有,你问题里说的实际参数是个什么意思?
通过你问的这两个问题,我觉得,你把类方法是对象方法正好弄反了。
作者:
x65396731
时间:
2014-8-14 14:13
本帖最后由 x65396731 于 2014-8-14 14:26 编辑
比如这个是类方法计算字符里数字的个数
+ (int)numberCountOfString(NSString *)str
{
int Count = 0;
for ( int i = 0 ; i <
[str length ]
; i ++)
{
unichar c = [str characterAtUbdex:i];
}
if ( c >"0"&& c<"9")
{
Count ++;
}
return Count;
}
这2句是类方法中调用对象方法吧?
类方法允许这样做吗?
假如在使用这个类方法中没有一个实例参数,这个类方法不就无法使用了吗?+
+(int)numberCountOfString
(NSString *)str
//这里算不算传一个实例变量
我不明白的是,老师既然说类方法是不需要访问实例的成员变量就可以使用的,但现在这个类方法如果不知道字符串的具体内容不就无法运行了吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2