Rubyのクラス定義・initialize(コンストラクタ)
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
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
スポンサーリンク
>> 次の記事 : アクセスメソッド(アクセサ)
<< 前の記事 : スーパークラスとサブクラス・クラス継承
- - 関連記事 -
- 特異クラスによるクラスメソッド定義・class << self ~ end
- モジュールの使い方
- クラス定義でメソッドへのアクセス制限・public, private, protected
- クラス継承
- クラス拡張
- クラス変数・クラスメソッド
- アクセスメソッド(アクセサ)をattr_reader, attr_writer, attr_accessorで定義
- アクセスメソッド(アクセサ)
- スーパークラスとサブクラス・クラス継承
- classメソッド・オブジェクトが属するクラスを調べる
- private, protected アクセス指定の違い
- オブジェクトのコピーを作る
- Rubyのinitializeメソッドの継承
スポンサーリンク