クラスの定義とインスタンスの作成

クラスを利用するにはまずクラスの定義を行います。そしてそのクラスをもとにインスタンスを作成します。ここでは Ruby でクラスを定義する方法、およびクラスからインスタンスを作成する手順について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 16 日更新)

クラスを定義する

クラスの定義は次のように行います。

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

上記を実行すると次のように表示されます。

newメソッド

今回のサンプルでは「車」の設計図であるクラスを定義し、クラスから 2 つのインスタンスを作成しています。インスタンスは元になっているクラスは同じですが、異なる初期化処理などを行っているため同じメソッドを実行させても別の動作を行います。

次のページではクラスに具体的にどのような動作をさせるのかを定義する方法を見ていきます。

-- --

Ruby でクラスを定義する方法、およびオブジェクトを作成する手順について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。