スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

第5回 クラスとメソッド??

 2008-04-28
イベントコマンドだと少ししか記述できないから、そろそろスクリプトエディタに行こうかな?

そこで、エディタでよく見る classdef の説明をしようかな?
RGSS2の処理はすべて個別化されています。
グループを作り、その中でのみ行える処理を作ります。
グループというのがクラス、処理がメソッドのような感じです。

calass_def_001.gif

では、スクリプトエディタを起動して、一番上にセクションを追加してください。
そのセクションにスクリプトを記述していきます。

あ、プログラムの流れも確認しておきましょう。
セクションの一番上から処理を実行することになります。
つまり、今回追加したセクションからですね。
そして、セクションを降りながら順番に処理を実行します。
このとき、メソッド内の処理は実行されません。
最後にMainに行き着きます。
しかし、プログラムは最後まで行かずにタイトルの処理に飛ぶわけです。
もし、タイトルに飛ばなかった場合は、プログラムの最後までいってしまうので、
何もせずに終了してしまいます。
ためしに、Mainセクションを削除かコメントアウトしてみるとわかると思います。


それでは、クラスとメソッドについて説明したいと思います。
Mainセクションは消したままでいいですよ。

1.クラス定義
# class クラス名
# end

class Hoge
end

このように定義します。
クラス名の最初の文字は必ず大文字にしてください。

2.メソッド定義
# def メソッド名
# end

def piyo
end

メソッド名は小文字で定義してください。

3.引数(ひきすう)
メソッドは、引数を持つことができます。
# 2つの値を足すメソッド
def fuga(p1, p2)
  p p1 + p2
end
fuga(1, 1)    # メソッドの呼び出し

仮引数には、変数を指定します。
メソッドの呼び出しで与えられた値をその変数に格納します。

実引数の省略する際は、仮引数で値を指定する。
def hogera(p1 = "省略")
  p p1
end
hogera    # => 省略
hogera("省略していない")  # => 省略していない


4.インスタンス生成
class Hoge
  def piyo
    p "ぴよぴよ"
  end
end
hoge = Hoge.new    # インスタンス生成
hoge.piyo          # => "ぴよぴよ"


5.クラスの引数
class Hoge
  def initialize(p1, p2)
    print "引数1:#{p1} 引数2:#{p2}"
  end
end
Hoge.new(3, 6)
initialize というメソッドは、インスタンス生成の際に自動で呼び出されます。
#{} というのは、式の展開です。""内に変数を記述しても文字として扱われるだけですが、
例のようにすると、変数として扱ってくれます。

6.クラスの継承
処理はグループ別だと言ったと思います。
クラスで分けられたメソッドは、そのクラス内でしか使用できません。
class Hoge
  def piyo
    p "ぴよぴよ"
  end
end

class Foo
  def bar
    p "ばぁ?"
  end
end

hoge = Hoge.new
foo = Foo.new
hoge.piyo  # => "ぴよぴよ"
foo.bar    # => "ばぁ?"
foo.piyo  # => エラー

このように違うクラスで定義されたメソッドは使えません。
下記は、Foo クラスに Hoge クラスを継承させた例です。
こうすることで、先ほどはできなかった処理が可能になります。
Foo で Hoge のメソッドが使えるわけです。

class Hoge
  def piyo
    p "ぴよぴよ"
  end
end

class Foo < Hoge
  def bar
    p "ばぁ?"
  end
end

hoge = Hoge.new
foo = Foo.new
hoge.piyo  # => "ぴよぴよ"
foo.bar    # => "ばぁ?"
foo.piyo  # => "ぴよぴよ"

んじゃ、この辺で

コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/52-93ee6c1f
≪ トップページへこのページの先頭へ  ≫
カレンダー
04 << 2017/05 >> 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。