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