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 件のコメント:
コメントを投稿