クラスの定義とインスタンスの作成
クラスを利用するにはまずクラスの定義を行います。そしてそのクラスをもとにインスタンスを作成します。ここでは Ruby でクラスを定義する方法、およびクラスからインスタンスを作成する手順について解説します。
(Last modified: )
クラスを定義する
クラスの定義は次のように行います。
class クラス名
end
クラスは class
から始まり end
で終わりとなります。そしてクラスにはクラス名を指定します。
クラス名はクラスを識別するための名前で大文字のアルファベットから始まります。例えば「Car」と言うクラスを定義するには次のように行います。
Class Car end
クラスを定義したら、今度はクラスからインスタンスを作成します。
インスタンスを作成する
クラスは設計図ですので実際に何かを行わせるにはクラスから実体であるインスタンスを作成する必要があります。すべてのクラスにはいくつかのクラスに対する動作を行わせるクラスメソッドが用意されています。クラスメソッドについてはまた別のページで詳しく見ていきますが、ここではクラスからオブジェクトを作成するための new
メソッドを使用してみます。
class クラス名 end 変数名 = クラス名.new()
クラスからオブジェクトを作成するには、クラス名に対して new
メソッドを実行します。メソッドはクラス名の後にドット .
を付けて記述します。そして作成されたインスタンスを格納するための変数名を指定します。
class Car end car1 = Car.new()
クラスは設計図ですので設計図から複数のインスタンスを作成することができます。作成されたインスタンスはそれぞれクラスに基づいた動作をしますが、それぞれ独立しているので別々に操作することができます。
class Car end car1 = Car.new() car2 = Car.new()
なおインスタンスもオブジェクトの一つです。クラスを元にオブジェクトを作成するといっても間違いではありません。
では実際に試してみます。
# encoding: UTF-8 class Car def initialize(carname) @name = carname end def dispName puts(@name) end end car1 = Car.new("crown") car1.dispName car2 = Car.new("civic") car2.dispName
上記を実行すると次のように表示されます。
今回のサンプルでは「車」の設計図であるクラスを定義し、クラスから 2 つのインスタンスを作成しています。インスタンスは元になっているクラスは同じですが、異なる初期化処理などを行っているため同じメソッドを実行させても別の動作を行います。
次のページではクラスに具体的にどのような動作をさせるのかを定義する方法を見ていきます。
-- --
Ruby でクラスを定義する方法、およびオブジェクトを作成する手順について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。