比如,定义一个类名为Car的类,类的声明(类的声明通常写在头文件中,即.h文件中,也可直接写在.m文件中):
// NSobject可以让类有创建对象的能力
@interface Car : NSobject
{
//声明对象属性
@public //是成员变量变成共有的,其下所有成员变量都将变成共有的,当然也可以在每个成员变量上都加@public
//【备注】实际开发中成员变量应以下划线”_”开头。
intspeed;//Car的speed属性(成员变量),只可声明,不可赋值。
intwheels;// Car的wheels属性(成员变量),只可声明,不可赋值。
}
//方法(也叫行为):方法名、参数、返回值、(声明、实现),方法不能写在大括号里面,方法定义前必须以减号或加号开头,方法类型要用小括号括住。当方法没有参数时方法名后一定不要加小括号。如果有参数,则可写成-(void) run:(int)num;即增加了一个int类型的参数num,注意小括号只能用来括类型。一个参数就写一个”:“。调用时应为:[p run:10],p为Car的指针。
- (void) run;//空函数,OC中方法实现必须在类的实现中@implementation Car和@end 之间写
@end//不能省略
类的实现(通常写在.m文件中):
@implementation Car
//定义类中的run方法内容
- (void) run
{
NSLog(@”车子跑起来了,时速为%d”,speed);
}
@end//不能省略
int main()
{
/*在OC中,想调用一个,就写上一个中括号[行为执行者行为名称]
利用类来创建对象*/
//执行了Car类的new行为来创建对象,定义了一个指针变量p,p将来指向的是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为方法所在类的指针