黑马程序员技术交流社区
标题:
OC中的类和对象
[打印本页]
作者:
562413895@qq.co
时间:
2015-7-19 08:50
标题:
OC中的类和对象
1、类:具有相似内部状态和运动规律的实体的集合。
对象:现实世界中各种各样的实体。
一个类可以实例化多个对象。
消息:指对象间相互联系和相互作用的方式。一个消息包括:发送消息的对象、接收消息的对象、消息传递方法、消息内容(参数)、反馈
OC中描述事物通过类的形式体现,类是多个t同类事物的抽象。
2、类的声明和实现
1)类的声明:.h文件用于类的声明,类的声明使用关键字:@interface和@end
声明一个类:@interface 类名:父类名
{ //定义类的属性 }
//类的行为
@end
例: //声明车的类
@interface Car:NSObject
{
@public;//共有的类
//类的属性
int Wheel;
NSString *color;
int speed;
}
//类的行为
@end
2)类的实现:.m文件中英语实现.h中声明的类,类的实现用@implementation和@end。
实现一个类:@implementation 类名
//行为的具体实现
@end
例:@implementation Car
//行为的具体实现
@end
3、方法
方法的声明和实现,都必须用 + 和 - 开头
+ 表示类方法(静态方法); - 表示对象方法(动态方法)。
注意:在.h中声明的所有方法作用域都是public类型。
4、对象的创建
例:[Car new]; //分配内存空间;给类Car的每个成员初始化值;返回新申请空间的首地址。
Car *p=[Car new];//定义了一个Car类型的指针变量指向新申请的内存空间;或者说实例化了一个Car类的实例对象p。
p->Wheel=10; //创建一个Car类型的对象Wheel,其实质是指针,用指针间接访问实例变量值。
5、无参方法的声明与实现
1)、方法的声明
例:-(void) run; //无参无返回值的方法
-(void) stop;
2)、方法的实现
例:-(void) run{
NSLog(@"车在飞!");
}
3)、调用方法
例:int s=[p run];//p是Car类的实例化对象,run是Car类的方法。
6、有参方法的声明与实现
1)、方法的声明
一般形式:-(或者是+)(返回值类型)方法名:(参数类型)参数名;//有一个参数的方法
-(或者是+)(返回值类型)方法名1:(参数类型1)参数名1 and (参数类型2)参数名2;//有2个参数的方法
例:-(int) sum:(int)x and (int) y;//有参有返回值的方法的声明
2)、方法的实现
例:-(int) sum:(int)x and (int) y{
return x+y;
}//此方法是对象方法(-),此方法名是:sum: and: (冒号是方法名的一部分)
3)、调用方法
例:int s=[类的对象名 sum:3 and :4};//3传给x,4传给y。
例://实现苹果手机
#import <Foundation/Foundation.h>
enum color{kColorWhite,kColorBlack,kColorTHJ } iColor;
//iphone类的声明
@interface iPhone:NSObject
{
//类的属性(实例变量、成员变量)
@public
iColor _color;
float _size;
NSString *_cpu;
}
//类的行为(方法的声明)
//查看收集的信息,实质是把手机的实例变量值打印出来
-(void)aboutMyPhone;
//打电话,需要一个参数,参数就是电话号码(字符串)
-(void)callPhone:(NSString *) telNum;
//发短信,给指定号码发送短信,短信的内容可以指定
-(void)sendMessage:(NSString *)telNum andContent:(NSString *) content;
@end
//iPhone 类的实现
@implementation iPhone
//查看收集的信息,实质是把手机的实例变量值打印出来
-(void)aboutMyPhone{
NSLog(@"颜色:%d,尺寸:%.2f,cup:%@",_color,_size,_cup);
}
//打电话,需要一个参数,参数就是电话号码(字符串)
-(void)callPhone:(NSString *) telNum{
NSLog(@"给%@打电话",telNum);
}
//发短信,给指定号码发送短信,短信的内容可以指定
-(void)sendMessage:(NSString *)telNum andContent:(NSString *) content{
NSLog(@"给%@发送短信,短信内容:%@.",telNum,content);
}
@end
//主函数
int main(int argc,const char *argv[])
{
@autoreleasepool{
//创建对象iPhone6Plus
iPhone *iPhone6Plus=[iPhone new];
//设定手机的信息
iPhone6Plus ->-color=kColorWhite;
iPhone6Plus->_cup=@"A10";
iPhone6Plus ->_size=6.0f;
//调用方法
[iPhone6Plus aboutMyPhone];
[iPhone6Plus callPhone:@"10086"];
[iPhone6Plus sendMessage:@"10086" andContent:@"君爱颖一万年"];
}
return 0;
}
作者:
562413895@qq.co
时间:
2015-7-19 09:11
自我感觉总结得不错
作者:
执笔梦
时间:
2015-7-19 12:28
挺长时间 没来咯,水一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2