OC是C系列语言,是面向对象的语言,而C语言是面向过程的,那么首先要理解面向对象和面向过程的区别。
面向过程是专注“事件”本身,这件事从发生到结束的行为。例如怎么把大象装进冰箱,面向过程的思想是这样的,首先打开冰箱门,把大象装进去,然后把冰箱门关上。而面向对象是专注于“事物”本身的,同样是装大象,面向对象的思想是这样的,什么东西能装大象去,找到能装大象的冰箱嘛~~~~
面向对象有2个非常重要的概念,类和对象。首先要有类,就是对象的模板,然后用类来创建对象,OC中的语法是这样的:
#import <Foundation/Foundation.h>
@interface Car : NSObject //类的声明,声明对象的属性、行为
{
@public // @public可以让外部的指针间接访问对象内部的成员变量
int wheels; // 轮胎个数
int speed; // 时速(xxkm/h)
}
- (void)run; //OC方法中任何数据类型都必须用小括号()扩住
@end
@implementation Car //类的实现
- (void)run //方法的实现,只要是OC对象的方法,必须以减号 - 开头
{
NSLog(@"车子跑起来了");
}
@end
int main()
{
Car *p = [Car new]; //利用类来创建对象
Car *p1 = [Car new]; //创建另一个对象
p->wheels = 5; //给P对象的属性赋值
p->speed = 300;
p1->wheels = 6; //给P1对象的属性赋值
p1->speed = 400;
[p run]; //运行p对象的方法
[p1 run]; //运行p对象的方法
NSLog(@"车子有%d个轮子,时速位:%dkm/h", p->wheels, p1->speed);
return 0;
}
需要注意一些常见错误
方法
1.对象方法都是以减号 -
2.对象方法的声明必须写在@interface和@end之间
对象方法的实现必须写在@implementation和@end之间
3.对象方法只能由对象来调用
4.对象方法归类\对象所有
函数
1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
2.函数调用不依赖于对象
3.函数内部不能直接通过成员变量名访问某个对象的成员变量