转 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为方法所在类的指针


目录
相关文章
|
人工智能 自动驾驶 机器人
ICLR 2024:模型选择驱动的鲁棒多模态模型推理
【2月更文挑战第24天】ICLR 2024:模型选择驱动的鲁棒多模态模型推理
258 1
ICLR 2024:模型选择驱动的鲁棒多模态模型推理
|
Ubuntu 编译器 C语言
ARM-GCC与交叉编译
ARM-GCC与交叉编译
|
定位技术 API
基于Leaflet.draw的自定义绘制实战
本文介绍了如何基于leaflet.draw进行自定义绘制,同时获取对象的bbox和geojson信息。
1176 0
基于Leaflet.draw的自定义绘制实战
|
Linux 数据安全/隐私保护 Windows
|
小程序
微信小程序—页面滑动,获取可视区域数据
微信小程序—页面滑动,获取可视区域数据
296 2
|
Python
Python:利用蒙特卡洛方法模拟验证概率分布
这个题目可以使用数学方法,将其答案显式地写出来,但是验证解出来的答案是否正确,就可以使用蒙特卡洛方法了。
694 0
Python:利用蒙特卡洛方法模拟验证概率分布
|
XML jenkins Java
必知的技术知识:Jenkins插件开发
必知的技术知识:Jenkins插件开发
428 0
广播风暴的分析和解决方法(STP配置)
广播风暴的分析和解决方法(STP配置)
277 0
|
语音技术
esp32+1.3寸屏幕语音交互
esp32+1.3寸屏幕语音交互
493 0
esp32+1.3寸屏幕语音交互
|
Ubuntu 网络协议
百度搜索:蓝易云【Ubuntu网络配置教程】
现在,你已经成功在Ubuntu上配置了网络接口。根据你的需求,网络接口将使用静态IP地址或DHCP自动获取IP地址。
197 1