转 OC之OC的类

简介:

比如,定义一个类名为Car的类,类的声明(类的声明通常写在头文件中,即.h文件中,也可直接写在.m文件中)

// NSobject可以让类有创建对象的能力

@interface Car : NSobject

{

//声明对象属性

@public   //是成员变量变成共有的,其下所有成员变量都将变成共有的,当然也可以在每个成员变量上都加@public

//【备注】实际开发中成员变量应以下划线”_”开头。

intspeed;//Carspeed属性(成员变量),只可声明,不可赋值。

intwheels;// Carwheels属性(成员变量),只可声明,不可赋值。

}

//方法(也叫行为):方法名、参数、返回值、(声明、实现),方法不能写在大括号里面,方法定义前必须以减号或加号开头,方法类型要用小括号括住。当方法没有参数时方法名后一定不要加小括号。如果有参数,则可写成-(void) run:(int)num;即增加了一个int类型的参数num,注意小括号只能用来括类型。一个参数就写一个。调用时应为:[p run:10]pCar的指针。

-        (void) run;//空函数,OC中方法实现必须在类的实现中@implementation Car@end 之间写

@end//不能省略

类的实现(通常写在.m文件中):

@implementation Car

//定义类中的run方法内容

-        (void) run

{

NSLog(@”车子跑起来了,时速为%d”,speed)

}

@end//不能省略

int main()

{

/*OC中,想调用一个,就写上一个中括号[行为执行者行为名称]

利用类来创建对象*/

//执行了Car类的new行为来创建对象,定义了一个指针变量pp将来指向的是Car类型的对象

Car *p = [Car new];

P -> speed = 4;//给对象的speed属性赋值。

//p指向的对象发送一条run消息,即调用run方法

[Car new]->speed = 4;//通过匿名对象进行赋值

[p run];

[[Car new] run];//通过匿名对象访问方法

return 0;

}

【备注】C语言语法格式的函数可以写在任何位置

每个类中都有一个isa指针,这个指针用来指向父类。

OC带参数的方法:- (int) run:(int)a :(int)b;第二个冒号前一定要有空格(调用时:[p run:10 :5])。但是实际开发中为了可读性并不这样写。而是将方法写成:- (int)sumwithNum1:(int)num1andNum2:(int)num2;

方法内容可写为:

- (int)sumwithNum1:(int)num1andNum2:(int)num2

{

    return num1+num2;

}

调用方法可写为:

         [p sumwithNum1:10andNum2:5];//p为方法所在类的指针


目录
相关文章
|
编译器 Python
|
编译器 C语言 Swift
|
Java C语言 iOS开发