Objective-C語言特性

來源:互聯網
上載者:User

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{@privateNSString *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


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.