*いろいろ [#d518e15d]

RIGHT:更新日 &lastmod();

***変数 [#i44bf9d5]

''インスタンス変数''~

生成されたインスタンス変数ごとに固有の値が入る変数のことで、各インスタンスごとに異なる値を設定できる

''クラス変数(オブジェクト変数)''~

うーん 現在調査中

***インスタンスメソッドとクラスメソッド [#j394b7e2]

メソッドの前に「-」がつくのがインスタンスメソッドで、「+」がつくのがクラスメソッド

クラスメソッドは「alloc」をしなくても直接メソッドにメッセージを送ることができる

''サンプル''

 #import <Foundation/Foundation.h>
 
 @interface nbai : NSObject
 {
         int data;
 
         int r,baisuu;
 }
 //インスタンスメソッド
 -(int) fun;
 
 //クラスメソッド(オブジェクトメソッド)
 +(int) fun2:(int) data2;
 
 @property int data;
 
 @end
 
 @implementation nbai
 
 @synthesize data;
 
 //インスタンスメソッド
 -(int) fun
 { 
         baisuu = 2;
         r = baisuu * data;
         return(r);
 }
 
 //クラスメソッド
 +(int) fun2:(int) d2
 {
 //クラスメソッドでは@interface部で宣言したものは使用できないようだ
         int r;
         int baisuu;
         baisuu = 3;
         r = baisuu * d2;
         return(r);
 }
 
 @end
 
 int main (int argc, const char * argv[]) {
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
        //インスタンスメソッド
         nbai * a;
         a = [[ nbai alloc] init ];
         a.data = 4;
 
         //インスタンスメソッド と クラスメソッド
         NSLog(@" Ans = %d  Ans2 = %d", [a fun] ,[nbai fun2:4]);
 
     [pool drain];
     return 0;
 }

***クラス継承 [#md8a982f]

nbaiを継承してクラスmnbaiを定義し、funというメソッドをオーバーライドしている。

''サンプル''
 #import <Foundation/Foundation.h>
 
 @interface nbai : NSObject
 {
         int data;
 
         int r,baisuu;
 }
 
 -(int) fun;
 @end
 
 @implementation nbai
 
 @synthesize data;
 
 //インスタンスメソッド
 -(int) fun
 {
         baisuu = 2;
         r = baisuu * data;
         return(r);
 }
 @end
 
 //クラス継承
 
 @interface mnbai : nbai
 { 
 
 }
 
 -(int) fun;
 
 @end

 
 @implementation mnbai
 //メソッドfunをオーバーライド
 -(int) fun
 {
         baisuu = 20;
         r = baisuu * data;
         return(r);
 }
 
 @end
 int main (int argc, const char * argv[]) {
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
         mnbai * b;
         b = [[mnbai alloc] init];
 
         b.data = 6;
         // クラス継承
         NSLog(@" mnbai Ans = %d  ", [b fun]);
 
     [pool drain];
     return 0;
 }

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS