黑马程序员---成长之路-----OC之基础篇类方法与对象方法的比较

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!



第一讲 类方法与对象方法的比较

1、对象方法:

以 - 号开头

可以使用成员变量

用对象调用对象方法

在实例方法中可以是用类的成员变量

对象方法可以调用当前对象或者其他对象方法,调用其他对象方法是通过将对象作为参数传入方法的。其中:

1) 当前对象方法中创建对象(可是是当前类的对象,也可以是其它类的对象),使用新创建的对象调用对象方法

2)可以使用self指针

3)对象作为方法的参数传递过来可以使用传递过来的对象调用指针。


2、类方法:

以+开头

不能使用成员变量

用类调用类方法

在类方法中可以调用其他的类方法

1)可以直接使用本类类名(或者其它类名)调用类方法

2)可以使用self

类方法可以调用对象方法(通过将对象作为参数传入方法),还可以创建一个对象。

类方法有一个陷阱,就是调用其本身会造成死循环。

第二讲 C与OC中计算字符串不一样的地方

在C中我们队字符串长度的计算用的是strlen(\0也是一个字符),是一个固定的方法,需要引入#string 的头文件,当然sizeof也可以,但是它不是一个方法。在OC中计算NSString 字符串长度,字符串是纯英文的:

NSString *s1=@"love";

NSUInteger Len=[s1 lenght];//输出的值是4,在NSUInteger中字符串的长度是没有/0的

其实在这里可以说NSUInteger是一种类型,申明一次之后就可以直接调用了。

字符串是纯中文的:

NSString *s2=@"人们";

len=[s2 length];//输出值是2

中英文字符串所占字节数在OC中是一样的,都只占一个字节,这是和C中完全不一样的,在C中,中文的一个字要占三个字节。


第三讲 匿名类(匿名对象)的概念及其使用

个人理解,匿名类应该说成是匿名对象,因为[类名 new]正常情况下是要有一个对象的,而这里所说的匿名其实就是把这个对象给丢弃了,就是不要这个对象名了,实际上这个对象还是在的,只是没有名字了而已。

匿名类的两种用法:

使用匿名类访问实例变量,例如有一个Car类:

[Car new]->_speed=160;

NSLog(@"_speed=%d", [Car new]->_speed);//实际上真正输出的是0,并不是160

其实原因在于使用匿名类访问实例变量只能访问一次,以后的访问都是在访问新的空间,也就是输出时的[Car new]申请的空间。

使用匿名的类可以调用方法,例如有一个Car类,一个stop方法:

  [[Car new] stop];

这里要说的一点,[Car new]可以等价于[[Car alloc] init]。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值