Objective-C语言特性

Objective-C语言特性

1.Objective-C建立在C语言之上,他是在C语言基础上添加扩展而来能够创建和操作对象的一门心的设计语言。

2.Objective-C是ANSI-C的超集,可以混编C和C++代码。

3.可以在现存C编译器基础上实现,不需要编写全新的编译器。在mac系统上编写Objective-C一般都使用xcode编译器。

4.不支持命名空间机制。一般都是在类别名称加前缀。在Cocoa编程环境中,所有Mac OS X类别和函数均有“NS”作为前缀,例如:NSString、NSObject等等。

5.不支持运算符重载。只支持单继承,不允许多重继承。

6.面向对象最大的特色是消息传递模型,对象不调用方法,而是互相传递消息。

7.不支持内联函数。

类定义 一般写在.h文件中   类实现写在.m文件中,例如:

Person.h
#import<Foundation/Foundation.h>
@interface Person:NSObject
{
@private
NSString *name;
int age;
}
@property(noatomic,retain) NSString* name;
-(void)setAge:(int)value;
-(void)printInfo;
@end


Person.m
#import"Person.h"
@implementation Person
@synthesize name;
-(int)age
{
    return age;
}
-(void)setAge:(int)value
{
    age = value;
}
-(void)printInfo
{
    NSLog(@"name:%@.\n",name);
    NSLog(@"age:%d.\n",age);
}
@end

main函数中测试代码:

Person *person = [[Person alloc] init]; [person setName:@"Marry"]; [person setAge:32]; [person release];

在Objective-C中一对中括号[]代表消息传递,例如person是消息接收者,setName是消息函数。

这里

@property(noatomic,retain) NSString* name;

是属性的声明  对应在.m文件中 @synthesize name;

如此,则系统自动生成set和get方法。当然,如果自己定义了set和get,则消息传递时调用用户定义的set和get,不调用系统的。

Objective-C新增数据类型:BOOL

typedef char BOOL;

#define YES 1

#define NO 0

nil和Nil和NULL

Nil 内置类型的指针,对象赋空值

Nil类对象的空值

NULL空值0


你可能感兴趣的:(编程,cocoa,xcode,语言,interface,编译器)