Rubyのクラス(Class)とは?オブジェクトの設計図を学ぼう
Rubyはオブジェクト指向言語であり、すべての値がオブジェクトです。
そのオブジェクトを作るための設計図が「クラス(Class)」です。
クラスとは?
クラスとは、同じ性質を持つオブジェクトを作るためのテンプレートです。
クラスには「属性(データ)」や「動作(メソッド)」を定義できます。
基本的なクラスの定義
class Person
def initialize(name)
@name = name
end
def say_hello
puts "こんにちは、#{@name}です。"
end
end
この例では、Person
クラスを定義しています。
@name
はインスタンス変数で、オブジェクトごとに異なる値を保持できます。
initializeメソッドとは?
initialize
メソッドは、オブジェクトが生成されたときに自動的に呼ばれる特殊なメソッドです。
C++やJavaで言う「コンストラクタ」にあたります。
クラスからオブジェクトを作る
person1 = Person.new("さくら")
person1.say_hello # → こんにちは、さくらです。
new
を使ってクラスからオブジェクト(インスタンス)を生成し、定義したメソッドを呼び出します。
インスタンス変数とメソッド
- インスタンス変数(
@name
など)… 各オブジェクトごとに異なる値を持つ
- インスタンスメソッド(
say_hello
など)… オブジェクトに対する操作
クラスに属性をつける方法(attr_accessor)
class Animal
attr_accessor :name
def initialize(name)
@name = name
end
end
dog = Animal.new("ポチ")
puts dog.name # → ポチ
dog.name = "タロー"
puts dog.name # → タロー
attr_accessor
を使うと、変数の読み書き用メソッドを自動で作ってくれます。
クラスメソッドとは?
class Hello
def self.say
puts "Hello from class method!"
end
end
Hello.say # → Hello from class method!
クラス自身に定義するメソッドは クラスメソッド と呼ばれ、self.
を付けて定義します。
まとめ
Rubyにおけるクラスは、オブジェクトを作るための基本的な構造です。
initialize
メソッドや @変数
、attr_accessor
を使いこなすことで、より効率的にデータと動作をまとめたプログラムが書けるようになります。
まずは自分でクラスを定義し、オブジェクトを作ってメソッドを呼び出す流れを体験してみましょう!