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ファイルの例:
main関数のテストコード:
Objective-Cの中括弧のペア[]は、personがメッセージ受信者、setNameがメッセージ関数などのメッセージングを表します.
ここ
属性の宣言に対応する.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内蔵タイプのポインタ、オブジェクトにNULL値を付与
NilクラスオブジェクトのNull値
NULL NULL値0
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:%@.
",name);
NSLog(@"age:%d.
",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内蔵タイプのポインタ、オブジェクトにNULL値を付与
NilクラスオブジェクトのNull値
NULL NULL値0