今日の東京は肌寒い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"];
メッセージ式で呼出し引数は:(コロン)で区切って指定する。
以上です。
乱文乱筆ではございますが、ご参考いただければ幸いです。