*いろいろ [#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