C语言发展至今,显示了强大的生命力。在C语言的基础上,现如今有Objective-C、C#、C++等语言,其中Objective-C语言因为苹果公司IOS开发的应用而声名鹊起,一跃成为编程语言中的新宠儿。Objective-C语言简称0C或者Obj-C,是面向对象的语言。
Objective-C语言与C语言相比,有的以下新的特点:
1 文件名以.m结尾,向下兼容C语言;
2 数据类型包括:
<1>基本类型
<1>数值类型;<2>字符类型;<3>构造类型;<4>普通指针类型;<5>空类型
<2>block类型;
<3>指针类型:类(class)和id;
<4>特殊类型:SEL和nil;
3 OC中的关键字大部分以@开头,因为OC向下兼容C,所以C语言中的关键字在OC中均可使用;
4 在C语言中的流程控制语句基础上,增加了增强for循环;
5 OC中类和函数的声明和定义与C语言不同;
6 OC语言中新增数据类型Boolean(布尔型)和BOOL类型,两者都是枚举类型。
<1>boolean可取true和false;bool可取YES和NO;
<2>新增异常处理函数:@try{} @catch(){} @finally{}
OC是面向对象的语言。面向对象具有三大特性:
<1>封装;<2>多态;<3>继承;
OC语言中,类是相同类型对象特征和行为的抽象。就如同我们对大千世界的认知,会把形形色色的事物分类一样,在OC中,类也是对象的抽象,可以实例化多个对象。
关于类的声明格式:
@interface 类名:父类名
{类的属性};
类的行为(方法);
@end
类中方法的实现格式:
@implementation
方法实现
@end
Objective-C语言与C语言相比,有的以下新的特点:
1 文件名以.m结尾,向下兼容C语言;
2 数据类型包括:
<1>基本类型
<1>数值类型;<2>字符类型;<3>构造类型;<4>普通指针类型;<5>空类型
<2>block类型;
<3>指针类型:类(class)和id;
<4>特殊类型:SEL和nil;
3 OC中的关键字大部分以@开头,因为OC向下兼容C,所以C语言中的关键字在OC中均可使用;
4 在C语言中的流程控制语句基础上,增加了增强for循环;
5 OC中类和函数的声明和定义与C语言不同;
6 OC语言中新增数据类型Boolean(布尔型)和BOOL类型,两者都是枚举类型。
<1>boolean可取true和false;bool可取YES和NO;
<2>新增异常处理函数:@try{} @catch(){} @finally{}
OC是面向对象的语言。面向对象具有三大特性:
<1>封装;<2>多态;<3>继承;
OC语言中,类是相同类型对象特征和行为的抽象。就如同我们对大千世界的认知,会把形形色色的事物分类一样,在OC中,类也是对象的抽象,可以实例化多个对象。
关于类的声明格式:
@interface 类名:父类名
{类的属性};
类的行为(方法);
@end
类中方法的实现格式:
@implementation
方法实现
@end
0C语言入门的小实例入下:
#import <Foundation/Foundation.h>
//实现IPONE打电话和发短信的功能
typedef enum iColor{kColorWhite,kColorBlack,kColorTHJ} Color;
@interface Iphone : NSObject
{
@public
int _size;//手机大小
Color _icolor;//手机颜色
NSString *_cpu;//CPU
}//定义类的属性
//定义类的方法
-(void)disIphone;
-(void)calTel:(NSString *) tel;
-(void)sendMessage:(NSString *) tel andContent:(NSString *) content;//函数名:sendMessage: andContent:
@end
@implementation Iphone//实现类的方法
-(void)disIphone
{
NSLog(@"大小:%d,颜色:%d,cpu:%@",_size,_icolor,_cpu);
}
-(void)calTel:(NSString *)tel
{
NSLog(@"给%@打电话",tel);
}
-(void)sendMessage:(NSString *)tel andContent:(NSString *)content
{
NSLog(@"给%@打电话,内容是%@",tel,content);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Iphone *iphone7 = [Iphone new];
iphone7->_size = 8;//对象属性的定义
iphone7->_icolor = kColorBlack;
iphone7->_cpu = @"A10";
[iphone7 disIphone];//对象方法的调用
[iphone7 calTel:@"10086"];
[iphone7 sendMessage:@"10086" andContent:@"联通客服电话是多少?"];
}
return 0;
}