クラスの定義とインスタンス化

Rubyにおけるクラスの定義とインスタンス化は、オブジェクト指向プログラミング(OOP)の中核をなす概念です。以下に、基本的な考え方と実装例を交えて詳しく説明します。


1. クラスの定義とは

Rubyでは、classキーワードを使ってクラスを定義します。クラスはオブジェクトの設計図であり、属性(変数)と振る舞い(メソッド)を定義するものです。

基本構文

ruby
class クラス名 # 初期化メソッド(コンストラクタ) def initialize(引数...) # インスタンス変数の初期化 end # インスタンスメソッド def メソッド名 # 処理内容 end end

2. クラスの定義例

ruby
class Dog def initialize(name, breed) @name = name # インスタンス変数(@が付く) @breed = breed end def bark puts "#{@name} says Woof!" end def info puts "#{@name} is a #{@breed}" end end

このDogクラスでは、犬の名前と種類(breed)を属性として持ち、barkinfoというメソッドで振る舞いを定義しています。


3. インスタンス化とは

定義されたクラスをもとに実際のオブジェクトを作ることを「インスタンス化」と呼びます。これは、newメソッドを使って行います。

インスタンス化の例

ruby
dog1 = Dog.new("Pochi", "Shiba Inu") dog1.bark # => Pochi says Woof! dog1.info # => Pochi is a Shiba Inu
  • Dog.new(...)は、Dogクラスの新しいインスタンス(=オブジェクト)を生成します。

  • initializeメソッドはインスタンス生成時に自動的に呼ばれ、インスタンス変数の初期化を行います。


4. クラスの特徴と役割

  • 再利用性:同じ構造のオブジェクトを簡単に複数作れる。

  • カプセル化:内部のデータ(インスタンス変数)を外部から隠蔽できる。

  • メソッドによる振る舞いの定義:オブジェクトごとに異なる状態でも同じメソッドを呼び出せる。


まとめ

用語 内容
クラス オブジェクトの設計図。属性とメソッドを定義する
インスタンス化 newを使ってクラスから実体(オブジェクト)を作る操作
initialize オブジェクト生成時に自動的に呼ばれる初期化メソッド
インスタンス変数 @が付いた変数。オブジェクトごとのデータを保持

生成日:2025/05/03