2011年2月13日日曜日

Objective-C で サブクラスの理解を深める一歩目

本とか読んでても、元々オブジェクト指向的な言語を使ってたり開発をやってないと、サブクラスとかよくわかんない。本や資料にはほにゃららのサブクラスを作ってどうこうって書いてあるけど、イメージしにくい。ので、小さいプログラムで、実際どう書けばいいかをちょっと書いた。

//  MyClass.h
#import 
@interface MyClass : NSObject {
}
- (void)logme;
@end
// ファイルを MySubClass.hにしてもいいけど、メモだから同じファイルに書いておいた。
// MyClass.h に書いてあっても、プログラム的には問題ない(はず)実用には向かないし奨めないけど。
@interface MySubClass : MyClass{  
}
- (void)logme;
@end

NSObject のサブクラス MyClass と、さらにそのサブクラス MySubClass を定義して、MyClass.h とした。

//  MyClass.m
#import "MyClass.h"

@implementation MyClass
- (void)logme {
  NSLog(@"MyClass logme now");
}
@end

// 同じく MySubClass.m にしたほうがいいけど。
@implementation MySubClass
- (void)logme {
  NSLog(@"MySubClass logme now");
}
@end

MyClass は logme メソッドを持っていて、NSLog() でログをはく。同じく MySubClass も logme メソッドを持っていて、 NSLog() でログをはく。

// どっか実行するメインのファイル たとえば MainViewController.m で MyClass.h を import
#import "MyClass.h"

// さらにどっかで実行。たとえば viewDidLoad()

- (void)viewDidLoad {
  [[MyClass alloc] logme];
  [[MySubClass alloc] logme];
}

なんの芸もないけど、ここから膨らませていけば、いろんなことができるはず。例えば、MyClass にだけ logmain() などを書いて、両方のクラスから呼んでみるとかね。

0 件のコメント:

コメントを投稿