クラスの定義とオブジェクトの作成

広告

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

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()

サンプルプログラム

では実際に試してみます。

ClassTest2.rb

class Car
  def initialize(carname)
    @name = carname
  end
  
  def dispName
    print(@name, "¥n")
  end
end

car1 = Car.new("crown")
car1.dispName

car2 = Car.new("civic")
car2.dispName

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

newメソッド

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

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

( Written by Tatsuo Ikura )