1つの型を構成することです。
ここでいう状態はクラス変数(メンバ変数)などを示し、
振る舞いはメソッドを示します。
固く書いてもわかりずらいので、最近sirocoがやっているゲーム「FF5」を
例に挙げて説明してみます(笑)
FF5にはジョブというシステムがあります。
ナイト・シーフ・白魔道士などなど。
これら各ジョブをクラスに表してみます。
public class シーフ {
}
クラスの宣言は以下のようになります。[修飾子] class クラス名 { }
上の例ではpublic(どこからでも使用できる)なシーフというクラスを宣言しています。
クラスの持つ状態や振る舞いは "{" と "}" の間にコーディングします。
ジョブには特有のアビリティがありますので、
それをメソッドとしてあらわしてみます。
public class シーフ {
public void かくしつうろ() {
// ダンジョンなどの隠し通路が見えるようになる
}
public void とんずら() {
// 戦闘から逃げる。逃げられないモンスターもいる
}
public void ダッシュ() {
// キャンセルボタンを押しながら移動すると、2倍の速度で動ける
}
public void ぬすむ() {
// モンスターの持つ宝を盗む。失敗することもある
}
・
・
・
}
メソッドの宣言は以下のようになります。[修飾子] [戻り値の型] メソッド名 { }
メソッドの内容については、また別の機会に。
さて、上で宣言したシーフクラスは1つのオブジェクトですが、
オブジェクトそのものでは使用できず、
インスタンス化をして始めて使用可能となります。
(staticなフィールドは別ですが)
インスタンス化の例を挙げてみます。
public class TestFF5 {
public static void main (String[] args){
// シーフクラスのインスタンスsirocoを生成
シーフ siroco = new シーフ();
// とんずらメソッドの使用
siroco.とんずら();
// シーフクラスのインスタンスkururuを生成
シーフ kururu = new シーフ();
// ぬすむメソッドの使用
kururu.ぬすむ();
}
}
てな感じです。変数やメソッドをクラスとして宣言し、インスタンス化することで、
sirocoとkururuのそれぞれで、オブジェクトのフィールド(変数やメソッド)を
使用できるようになります。
クラスとインスタンスについては、こんなところで。
次回以降でもう少し掘り下げて説明していきます。
。。。勿論、FF5を使ってね(笑)
0 件のコメント:
コメントを投稿