学习笔记17:OC基础(4)
引入类方法可以减少内存的占用,因为只是使用对象方法的话,在调用函数时,必要首先创建对象,这会占用内存堆区的一部分空间。但是如果用类名直接引用方法,就会节省这块空间。
声明:

调用格式:【类名 方法名】
类方法的声明和对象方法可以,同名,因为她们的方法类别不一样。不会造成混乱。
类方法使用注意事项:
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】】;
匿名类优缺点:
优点:简化代码方便方法调用
缺点:匿名对象实例以后,只能正确使用一次成员变量。
...全文
相关推荐
iOS学习笔记
我自学iOS开发时做的笔记,主要是OC语言的语法部分,没有包fundation框架,以我的亲身感受总结出iOS初学者容易犯的错误及疑问的地方,对本文如果意见欢迎与我交流,谢谢
OpenShift4.17.17离线安装Operator ODF指南
目的: 确定本地仓库的访问地址,用于生成证书和配置。
北京大学越南语教程第一册学习笔记.doc
北京大学越南语教程第一册学习笔记.doc
C4D OC4.0.rar
oc渲染器
Objective-C学习笔记(一)OC基础.md
这篇笔记主要介绍了Objective-C的一些基础知识,包括以下几个方面: 1. Objective-C概述,介绍了Objective-C的来源、发展历史和作为面向对象的C语言的特点。 2. 第一个OC程序,讲解了如何创建一个OC项目,解释了一些OC程序中的关键字和语法。 3. OC基础语法,对比了OC和C语言的一些区别和共同点。 4. 面向过程与面向对象的概念,并解释了使用面向对象思维解决问题的好处。 5. 类与对象的概念,如何定义一个类,如何创建对象并访问对象的属性。 6. 方法的声明、实现和调用,详细讲解了无参数、单参数和多参数方法的语法。 7. 两个实例,通过"书类"和"手机类"两个具体例子,综合运用前面所学的知识点。 这些都是OC初学者需要掌握的基础知识,为后续学习OC打下基础。笔记讲解很细致,结合了大量实例代码,非常适合初学者阅读和学习。


软件培训

