常用语法
这几节又对OC面向对象的设计进行了深入剖析,对于OC编程语法相比较上节的学习更加具体。如类的声明和实现、方法的定义以及使用,可以发现面向对象封装的最大好处是可以接近人的思维方式,解决问题不需要考虑太多的细节与步骤。于是做了如下的总结:
1.对于类的声明和实现的理解:
声明就好像暴露在外面的时钟表面,实现就好像隐藏在时钟内部的构造实现。
苹果官方文档图例说明了声明和实现的关系:
在声明与实现时注意:
1.只有类的声明,没有类的实现是错误的;
2.@interface@implementation与@end是成对出现的,不能漏掉@end;
3.@interface和@implementation不能嵌套使用,两个类的声明也不能嵌套
4. 没有@interface,只有@implementation,也是能成功定义一个类的方法
2.OC方法和函数的区别:
方法:
1.对象方法都是以减号 -
2.对象方法的声明必须写在@interface和@end之间
对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有
函数:
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变量
低级错误:方法有声明,但是实现的时候写成了函数
方法名:
不带参数的方法,如:- (double)pi;
带一个参数的方法,如:- (int)pingFang:(int)num;
带多个参数的方法:如:- (int)sumWithNum1:(int)num1 andNum2:(int)num2;
参数是对象的方法:如:- (int)compareSpeedWithOther:(Car *)other;
注意:
1、冒号也是方法名的一部分;
2、同一个类中不允许两个对象方法同名
4.匿名对象
匿名对象是不提前定义一个指针来接收[类名 new ]创造的对象,而是创造后直接使用。
如:[Car new]->speed = 200; [ [Car new] run]; 前者是访问属性,后者是方法调用
5.类的属性
类的属性可以是所有的数据类型:整型、浮点型、字符、字符指针、结构体、也可以是类。在进行封装时,要选择合理的数据类型。