首页 > 代码库 > 黑马程序员 03-类的声明和实现(第一个OC的类)
黑马程序员 03-类的声明和实现(第一个OC的类)
———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———
要描述OC中的类稍微麻烦一点,分2大步骤:类的声明、类的实现(定义)。跟函数类似,函数有分函数的声明和函数的定义。
1、创建一个Car类
- 定义一个Car类,拥有2个属性:轮子数、时速,1个行为:跑
- 类名\属性的命名规则:标示符的规则
- 类名的命名规范:有意义、驼峰标识、首字母大写
2、代码编写
(1)分析类的3要素
类名:Car
属性:轮胎个数(_wheels)、速度(_speed)
行为:跑(run)
(2)完整地写一个函数:函数的声明和定义(实现);
完整地写一个类:类的声明和实现
(3)类的声明:声明对象的属性、行为(方法)
类的实现:即方法的实现(说清楚方法里面有什么代码)
1 //1.类的声明 2 //声明对象的属性、行为 3 // : NSObject 表示Car类继承基类NSObject,目的是:让Car类具有创建对象的能力(new方法属于类方法,它的声明在基类NSObject) 4 @interface Car : NSObject 5 //{}中用来声明对象属性(成员变量\实例变量,默认会初始化为0) 6 { 7 @public//可以让Car类创建的对象的_wheels和_speed属性被外界指针间接访问 8 int _wheels;//轮胎个数 9 int _speed;//速度10 }11 //方法(行为):方法名、参数、返回值(声明、实现),不能写在{}里面12 //只要是OC对象的方法,必须以减号 - 开头13 //OC方法中任何数据类型都必须用小括号()括起来14 //OC方法中的小括号():只用来括住数据类型,不要乱用15 //方法的声明后面不需要{}16 - (void)run;//跑17 @end18 19 //2.类的实现20 //用来实现@interface中声明的方法21 @implementation Car22 //方法的实现(说清楚方法里面有什么代码)23- (void)run24{25 NSLog(@"轮子个数为%i,时速为%ikm/h的车子跑起来了!", _wheels, _speed);26}27 28 @end29 30 int main(int argc, const char * argv[])31 {32 //在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]33 //利用类来创建一个对象34 //执行了Car这个类的new行为来创建新对象35 //new方法属于类方法36 37 //OC中,只能通过指针间接操作对象的成员变量38 //定义了一个指针变量car1,car1将来指向的是Car类型的对象39 //[Car new]会创建出一个新对象,并且会返回新对象本身(新对象的地址)40 Car *car1 = [Car new];41 42 Car *car2 = [Car new];43 44 car2 -> _wheels = 5;45 car2 -> _speed = 300;46 47 48 //给car1所指向对象的成员变量赋值49 car1 -> _wheels = 4;50 car1 -> _speed = 120;51 52 //car1调用对象方法run53 //给car1所指向的对象发送一条run消息54 [car1 run];55 [car2 run];56 57 return 0;58 }
本节重点:
1、类的声明写在@interface和@end之间;类的实现写在@implementation和@end之间。注意@end后面没有;号。
2、: NSObject 表示Car类继承基类NSObject,目的是:让Car类具有创建对象的能力(new方法属于类方法)。
3、类的声明中,{}中只能用来声明对象属性(成员变量/实例变量),默认会初始化为0。
4、@public可以在类的外部通过指针间接访问到对象的成员变量/实例变量。
5、类的声明中,方法(类方法、对象方法)只能写在{}之后,@end之前;注意:方法不能写在{}中。
6、行为(方法),这里暂时只谈对象方法:
1>方法名、参数、返回值(声明、实现),不能写在{}里面。
2>只要是OC对象的方法,必须以减号 - 开头
3>OC方法中任何数据类型都必须用小括号()括起来
4>OC方法中的小括号():只用来括住数据类型,不要乱用
5>方法的声明后面不需要{}
7、类的实现用来实现@interface中声明的方法,方法的实现(说清楚方法里面有什么代码)
8、在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称];利用类来创建一个对象;
执行了Car这个类的new行为来创建新对象;new方法属于类方法。
9、[Car new] 完成了3件事:1>分配存储空间;2>初始化成员变量;3>返回空间地址。
10、成员变量的赋值:利用指针间接操作对象的成员变量
//给car1所指向对象的成员变量赋值
car1 -> _wheels = 4;
car1 -> _speed = 120;
黑马程序员 03-类的声明和实现(第一个OC的类)