黑马程序员-OC基本语法

  OC是C系列语言,是面向对象的语言,而C语言是面向过程的,那么首先要理解面向对象和面向过程的区别。

      面向过程是专注“事件”本身,这件事从发生到结束的行为。例如怎么把大象装进冰箱,面向过程的思想是这样的,首先打开冰箱门,把大象装进去,然后把冰箱门关上。而面向对象是专注于“事物”本身的,同样是装大象,面向对象的思想是这样的,什么东西能装大象去,找到能装大象的冰箱嘛~~~~

     面向对象有2个非常重要的概念,类和对象。首先要有类,就是对象的模板,然后用类来创建对象,OC中的语法是这样的:

     

 1 #import <Foundation/Foundation.h>
 2 @interface Car : NSObject   // 类的声明,声明对象的属性、行为
 3 {
 4     @public      // @public可以让外部的指针间接访问对象内部的成员变量
 5     int wheels;  // 轮胎个数
 6     int speed;   // 时速(xxkm/h)
 7 }
 8 - (void)run;   // OC方法中任何数据类型都必须用小括号()扩住
 9 @end
10 
11 @implementation Car  //类的实现
12 - (void)run  // 方法的实现,只要是OC对象的方法,必须以减号 - 开头
13 {
14     NSLog(@"车子跑起来了");
15 }
16 @end
17 
18 int main()
19 {
20 
21     Car *p = [Car new]; // 利用类来创建对象
22     Car *p1 = [Car new]; // 创建另一个对象
23     p->wheels = 5; // 给P对象的属性赋值
24     p->speed = 300;
25     p1->wheels = 6; // 给P1对象的属性赋值
26     p1->speed = 400;
27     [p run]; // 运行p对象的方法
28     [p1 run]; // 运行p对象的方法
29     NSLog(@"车子有%d个轮子,时速位:%dkm/h", p->wheels, p1->speed);
30     return 0;
31 
32 }

需要注意一些常见错误

 方法
 1.对象方法都是以减号 - 
 2.对象方法的声明必须写在@interface和@end之间
    对象方法的实现必须写在@implementation和@end之间
 3.对象方法只能由对象来调用
 4.对象方法归类对象所有
 
 函数
 1.函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
 2.函数调用不依赖于对象
 3.函数内部不能直接通过成员变量名访问某个对象的成员变量

原文地址:https://www.cnblogs.com/pangjiayang/p/3956273.html