Rubyのクラス定義・initialize(コンストラクタ)

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

Rubyのクラス定義の基本を見てみます。
Rubyの場合、クラス定義には、class文を使います。
ただし、クラス名は大文字ではじめなければならないという約束事があります。
Rubyのクラスでのコンストラクタの役割は、initializeメソッドが担います。
initializeメソッドにより、オブジェクト(クラスのインスタンス)の初期化が行われます。

簡単なクラス定義として、Profileクラスを作ってみます。
インスタンス変数とメソッドを追加することで、名前、年齢、身長、体重、所在地などのデータから構成される、人物プロフィールのクラスを定義することもできるでしょう。

まずは、Rubyのクラス定義の、ごくシンプルな基本形です。

class Profile
    def initialize(name_one = "Tom")    # コンストラクタ
        @name = name_one
    end
    def hello    # helloメソッド
        puts "Hello, #{@name}"
    end
end
 
tom = Profile.new
bob = Profile.new("Bob")
 
tom.hello
bob.hello

コンストラクタ名に、initializeという名前の特別なメソッドを使う、という点以外は、他言語と同じような形でクラス定義が行えます。
クラスをインスタンス化(オブジェクト生成)する時には、「クラス名.new」と書き、initializeメソッドが引数を取る場合は、引数を渡してインスタンス初期化が行えます。

実行結果。

Hello, Tom
Hello, Bob

日時: 2008年06月24日 10:36
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/342

この記事にトラックバックされる方は、参照先が分かるようにするために、「Rubyのクラス定義・initialize(コンストラクタ)」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - Ruby勉強ルーム