developer's diary

最近はc#のエントリが多いです

Objective-Cのクラス(NSObject)とJavaのクラスを比較

メソッド1つだけのJavaで作ったクラスをObjective-CのNSObjectに置き換えてみる。

ソースは動かしてないです。

Javaのクラスにメソッド定義

class Hoge

   //メソッド定義
   public int huga(String age, int len) {
      return 1;
   }

   //メソッド実行
   public void main(){
      System.out.printl(this.huga("a",1));
   }

end

Objective-CのNSObjectにメッセージ式定義

@interface Hoge : NSObject

//メッセージ式定義
- (int) age(NSString *):age len:(int)len {
   return 1;
}
//メッセージ式実行
-(void) main{
   NSLog(@"%d", [self age:@"" len:1]);
}

@end

すぐに気づくこと

  • メソッド名のhugaがない!
  • メッセージ式はクラスインスタンスに引数リストを送るイメージ。
  • メソッドっぽいのは引数なしのメッセージ式。

以上。