Object-C——类和对象
面向对象的最基本的两个概念就是:类和对象。
一、 类
类就是用来描述一类事物的组合定义。
1、类的设计:
① 类名
* 类名的第一个字母必须是大写
* 不能有下划线
* 多个英文单词,用驼峰标识
② 属性
③ 行为(功能)
2、类的声明
声明对象的属性、行为
1 // : NSObject 目的是:让Car这个类具备创建对象的能力 2 @interface Car : NSObject 3 {// 用来声明对象属性(实例变量\成员变量,默认会初始化为0) 4 // @public可以让外部的指针间接访问对象内部的成员变量 5 @public 6 int wheels; // 轮胎个数 7 int speed; // 时速(xxkm/h) 8 } 9 10 // 方法(行为):方法名、参数、返回值(声明、实现) 11 // 只要是OC对象的方法,必须以减号 - 开头 12 // OC方法中任何数据类型都必须用小括号()扩住 13 // OC方法中的小括号():括住数据类型 14 - (void)run; 15 16 @end
@public可以让Car对象的wheels和speed属性被外界访问
3、类的实现
1 // 用来实现@inteface中声明的方法 2 @implementation Car 3 // 方法的实现(说清楚方法里面有什么代码) 4 5 - (void)run 6 { 7 NSLog(@"车子跑起来了"); 8 }
二、 对象
1、在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]
2、利用类来创建对象
3、执行了Car这个类的new行为来创建新对象
4、定义了一个指针变量p,p将来指向的是Car类型的对象
5、[Car new]每次都会创建出一个新对象,并且会返回新对象本身(新对象的地址)
1 Car *p = [Car new]; 2 3 4 Car *p2 = [Car new]; 5 p2->wheels = 5; 6 p2->speed = 300; 7 [p2 run];
6、创建多个Car对象
① 分别设置wheel和speed的属性
1 Car *c1 = [Car new]; 2 c1->wheels = 4; 3 Car *c2 = [Car new]; 4 c2->speed = 250; 5 [c1 run];
② 一个赋值给另一个,然后修改属性
1 Car *c1 = [Car new]; 2 c1->wheels = 4; 3 c1->speed = 250; 4 Car *c2 = c1; 5 c2->wheels = 3; 6 [c1 run];
三、OC对象与函数
1、对象方法
① 对象方法都是以减号 -
② 对象方法的声明必须写在@interface和@end之间
③ 对象方法的实现必须写在@implementation和@end之间
④ 对象方法只能由对象来调用
⑤ 对象方法归类\对象所有
1 @interface Car : NSObject 2 {// 成员变量\实例变量 3 //int wheels = 4; 不允许在这里初始化 4 //static int wheels; 不能随便将成员变量当做C语言中的变量来使用 5 @public 6 int wheels; 7 } 8 9 - (void)run; 10 - (void)fly; 11 @end
2、 函数
① 函数能写在文件中的任意位置(@interface和@end之间除外),函数归文件所有
② 函数调用不依赖于对象
③ 函数内部不能直接通过成员变量名访问某个对象的成员变量
1 int main() 2 { 3 4 void test2();//函数的定义 5 6 7 return 0; 8 }