スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

JavaプログラマのためのObjective-C Vol.02

今日の東京は肌寒い1日でした。
そろそろ秋ですね、早いものです。
今回はメソッドの定義とその呼出について。


引数を持たないメソッドの定義。

・Javaのメソッド(引数なし)定義
public class MyClass {
// 引数なし・戻り値なし
void doMethod1() {
}

// 引数なし・戻り値あり
String doMethod2() {
return "hoge";
}

// スタティックメソッド
static void doMethod3() {
}
}

・Objective-Cのメソッド(引数なし)定義
@implementation MyClass: NSObject
// 引数なし・戻り値なし
- (void) doMethod1 {
}

// 引数なし・戻り値あり
- (NSString *) doMethod2 {
return @"hoge";
}

// スタティックメソッド
+ (void) doMethod3 {
}
@end

インスタンスメソッドは-(マイナス)で始まる。
スタティックメソッドは+(プラス)で始まる。
戻り値型(void含む)をカッコで囲む。

-----

引数を持たないメソッドの呼出。
※クラスのインスタンスをmyClassとした場合

・Javaのメソッド(引数なし)呼出
// インスタンスメソッド
myClass.doMethod1();

// スタティックメソッド
MyClass.doMethod3();

・Objective-Cのメソッド(引数なし)呼出
// インスタンスメソッド
[myClass doMethod1];

// スタティックメソッド
[MyClass doMethod3];

.(ピリオド)を使わずに[と](囲まれた部分をメッセージ式と呼ぶ)で囲む。

-----

インスタンス生成(コンストラクタ)。

・Javaのインスタンス生成
MyClass myClass = new MyClass();

・Objective-Cのインスタンス生成
MyClass *myClass = [MyClass alloc];

alloc(スタティックメソッド)でインスタンスを生成(ファクトリメソッド)。
allocメソッドはルートクラスで定義されているのでどのクラスからでも呼出可能。

-----

引数を持つメソッドの定義。

・Javaのメソッド(引数あり)定義
public class MyClass {
void doMethod4(String arg1, String arg2) {
}
}

・Objective-Cのメソッド(引数あり)定義
@implementation MyClass: NSObject
- (void) doMethod4:(NSString *)arg1:(NSString *)arg2 {
}
@end

引数は:(コロン)で区切りる。

-----

引数を持つメソッドの呼出。

・Javaのメソッド呼出(引数あり)
myClass.doMethod4("hoge1", "hoge2");

・Objective-Cのメソッド呼出(引数あり)
[myClass doMethod4:@"hoge1":@"hoge2"];

メッセージ式で呼出し引数は:(コロン)で区切って指定する。

以上です。
乱文乱筆ではございますが、ご参考いただければ幸いです。

COMMENT

Name
E-mail
URL
Comment
Pass  *
Secret? (管理者にだけ表示)