back

クラスを作る! (3/7)

■クラスを定義していこう!

では、作成されたクラスに追記をして、簡単な機能を組み込んでみましょう。クラスには、先に触れましたが「インスタンス変数」と「メソッド」というものが用意できます。これらは、それぞれ以下のようなものです。

インスタンス変数――クラスは、クラスのまま使うことはあまりありません。クラスをコピーして「インスタンス」というものを作り、それを利用します。作成されたそれぞれのインスタンスごとに値を保管しておくために用意されるのがインスタンス変数です。

メソッド――メソッドは、そのクラスに用意しておく処理を記述するためのものです。まぁ、「クラスの中に入れておける関数定義」と考えればいいでしょう。ただし、C言語の関数とは、定義の仕方がかなり違っているので注意が必要です。

インスタンス」というのが登場しましたが、これはこのあとで実際に利用してみますので今は深く考えなくてかまいません。――では、この2つの要素をもった簡単なクラスを作ってみることにしましょう。

下のリスト欄を見てください。これが、今回のサンプルです。ここでは以下の4つの要素を新たに追加してみました。それぞれがどういう形で定義されているのか、見ていきましょう。

・インスタンス変数
message――テキストを保管しておくためのものです。

・メソッド
setMessage――インスタンス変数messageにテキストを設定します。
message――インスタンス変数messageを取り出します。
printMessage――インスタンス変数messageを出力します。


インスタンス変数の定義

これは、@interface{}内に記述をします。変数のタイプと変数名を記述する、普通の変数宣言とほぼ同じですね。

ただし、ここでは「NSStrng*」というのがタイプに指定されています。NSStringというもののポインタですね。このNSStringというのは、前にもちらっと触れましたが、Objective-Cにおけるテキストの基本となるクラスです。Objective-Cでは、テキストを扱うときは、このNSStringを利用するのが基本です。

Objective-Cには、こうしたクラスがたくさん用意されています。が、そうしたクラスを利用するときは、必ず「ポインタ」を利用します。つまり「NSString message」ではなく、「NSString* message」とするのが基本なのです。多くのクラスのメソッドなども、すべてポインタを渡すのが前提で設計されています。


(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。

※ヘッダーファイル(MyTestClass.h)

#import <Foundation/Foundation.h>

@interface MyTestClass : NSObject {
	NSString* message;
}

-(void)setMessage:(NSString*) str;
-(NSString*)message;
-(void)printMessage;

@end


※実装ファイル(MyTestClass.m)

#import "MyTestClass.h"

@implementation MyTestClass

-(void)setMessage:(NSString*) str {
	message = str;
}

-(NSString*)message {
	return message;
}

-(void)printMessage {
	NSLog(@"%@",message);
}

@end



   

記事のリストに戻る



PC Site G+ mail