关于OC的一段入门小代码:
-----------------------------------
#import <Foundation/Foundation.h>
//声明Car类,并继承NSObject
@interface Car : NSObject
{
NSString * name;
double price;
int speed;
}
-(void) setSpeed : (int) tempSpeed
-(void) showPrice()
@end
//Car类的方法实现
@implementation Car
-(void) setSpeed : (int) t_speed
{
speed = t_speed;
}
-(void) showPrice
{
NSLog(@"The Price is %f",price)
}
@end
//Car类的使用
Car *mycar = [Car new];
[mycar showPrice];
[mycar setSpeed:70];
---------------------------------
其中Car *mycar = [Car new]; 等同于 Car *mycar = new Car();
其中@interface...@end 和@implements...@end 是关于类的声明相关的定义。注意配套使用的。
注意:
"-"号,这个代表的是对象实例的方法,也就是必须是new出来的对象,才有资格使用这个方法。
"+"号,代表的是类方法,不需要创建实例就可以调用的方法,类似于类的静态方法。
OC的文件组织结构是:
头文件(.h) + 实现文件(.m)
组织结构像这样(图片摘自网上:):
在OC中BOOL型的定义是这样的:
BOOL flag = NO;
BOOL的定义可以是YES和NO两种。
判断可以这样:
if(flag == YES)
{}
或者这样:
if(flag)
{}
其实BOOL的真实内涵在程序内部的定义是这样的:
所以至于它的特性内涵、你懂得。
>>>对于一个方法的定义:
-(返回类型) 方法名:(参数类型)参数名 ( 例子:-(int) getKey:(int) tempKey )
>>>多参数传递的方法定义:
-(返回类型) 方法名:(参数类型)参数名 方法名:(参数类型)参数名
( 例子:-(void) setKey:(int) tempKey setValue:(int) tempValue )
调用形式:
[myClass setKey:12 setValue:734]
>>>如何新建对象实例:
Car *mycar = [[Car alloc] init]; (推荐)
Car *mycar = [Car new];
使用alloc来分配内存,并使用init来初始化,会将这块内存全部清0,bool型为NO,int型为0,指针为nil