您的位置:首页 > 职场人生

黑马程序员---学习笔记17:OC基础(4)

2015-08-20 13:12 344 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流!
——-

引入类方法可以减少内存的占用,因为只是使用对象方法的话,在调用函数时,必要首先创建对象,这会占用内存堆区的一部分空间。但是如果用类名直接引用方法,就会节省这块空间。

声明:

[img=http://img.bbs.csdn.net/upload/201508/17/1439799637_344063.png][/img]

调用格式:【类名 方法名】

类方法的声明和对象方法可以,同名,因为她们的方法类别不一样。不会造成混乱。

类方法使用注意事项:

1)类方法可以和对象方法同名

2)类方法可以从子类继承,子类可以重写类方法,

3)类方法和对象方法一样需要声明和实现

4)类方法只能通过类发送类方法消息才能被执行,对象是不能调用的

5)在类方法中使用了self,这个self执行的类对象class object 而不是实例对象instance object

类方法的优点:

1)节省内存空间

2)提高效率

3)作为工具方法(统计一个字符串有多少字符)

类方法易犯错误

1)在类方法中使用了类的成员变量

2)类方法是不能访问实例变量,实例变量只能由实例对象访问

对象方法和类方法的比较

1)对象方法

以- 号开头

可以使用成员变量

用对象调用对象方法

对象方法可以调用当前对象或其他对象的方法

(1)在对象方法中创建一个对象

(2)将调用的对象作为参数传递过来

(3)可以使用self 【self 对象方法】

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

(1)可以直接使用本类类名或者其他类名

(2)可以使用self 【self 类方法】

2)类方法

以+号开头

不可以使用成员变量

用类名调用类方法

类方法可以调用对象方法(将对象作为参数传入)和类方法

!!!类方法不能调用自身,如果做了会发生无限循环

类方法的应用场景::

如果我们调用一个方法,该方法不需要使用成员变量(方法实现中不需要使用成员变量,成员变量可以做参数),我们就可以声明为类方法

为什么类方法不能使用成员变量?

类方法的使用没有创建对象,在堆区中就没有为成员变量分配存储空间,成员变量就没有值,访问就没有意义

匿名类:

1)使用匿名类访问成员变量(能,只能访问一次),以后再次访问实际上访问的是新空间

【Car new】->speed=250;

NSLog(@"%d" ,[Car new]->speed); //打印的结果是0 ,再次使用匿名类的时候会再次创建新对象

2)使用匿名类可以调用成员方法

[[Car new] stop];

[[[Car alloc ] init] stop];

[[Car alloc] init]等价与[Car new]

拷贝其他工程中的文件到新的target

1)目标文件---show in Finder,拖拽到新工程

2)将目标文件复制到新工程的文件夹内,新工程--右击(add。。。),如果还不行,找到project---右侧build phases--下面compile sources添加

匿名类作为方法的参数:

【【Person new】 goHome:【【Car alloc】init】】;

匿名类优缺点:

优点:简化代码方便方法调用

缺点:匿名对象实例以后,只能正确使用一次成员变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: