类和对象
1、类的声明
@interface 类名:父类名{
//定义类的属性
}
//定义类的行为
@end
2、类的实现
@implementation 类名
//行为的具体实现
@end
3、方法的声明
无参方法
-(返回值类型)方法名;
有参方法
-(返回值类型)方法名:(参数类型)参数名; -(返回值类型)方法名:(参数类型1)参数名1 and:(参数类型2)参数名2;
注意:这里的方法名为:方法名: and:
4、对象的创建
类名 *变量名 = [类名 new];
这句话做了三件事:
- 向计算机申请内存
- 给类中的每个成员初始化值
- 返回新申请空间的首地址
5、方法的调用
[对象 方法名];
Demo实现
/*
类名:苹果手机(Iphone)
属性:颜色,大小,cpu
行为:查看本机信息(aboutMyPhone),打电话(call),发短信(sendMessage)
实现该类,并:
1、查看本机信息
2、打电话给10086
3、给10086发短信问联通的客服电话是多少
*/
typedef enum color{kColorWhite,kColorBlack,kColorTHJ} iColor;
@interface IPhone : NSObject{
@public
iColor _color;
float _size;
NSString *_cpu;
}
-(void)aboutMyPhone;
-(void)call:(NSString *)telNum;
-(void)sendMessage:(NSString *) telNum andContent:(NSString *) content;
@end
@implementation IPhone
-(void)aboutMyPhone{
NSLog(@"颜色:%d, 大小:%.2f, cpu: %@",_color,_size,_cpu);
}
-(void)call:(NSString *)telNum{
NSLog(@"给 %@ 打电话!",telNum);
}
-(void)sendMessage:(NSString *)telNum andContent:(NSString *)content{
NSLog(@"给 %@ 发送短信,短信内容为:%@",telNum,content );
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
IPhone *iphone = [IPhone new];
iphone->_color = kColorTHJ;
iphone->_cpu = @"A30";
iphone->_size = 8.0f;
[iphone aboutMyPhone];
[iphone call:@"10086"];
[iphone sendMessage:@"10086" andContent:@"联通客服电话是多少"];
}
return 0;
}
结束了第一篇ios的学习,初次接触还真有点不习惯。比如对象的创建,习惯了java中的new +类名来创建对象,而oc中是类名+new。总而言之,ios的学习迈出了一步。