Rubyのオブジェクト指向とは?クラスやメソッドの仕組みをわかりやすく解説
Rubyは純粋なオブジェクト指向言語として知られており、すべてがオブジェクトとして扱われます。
整数や文字列、true や nil でさえオブジェクトであり、それぞれにクラスとメソッドが定義されています。
オブジェクト指向とは?
オブジェクト指向(OOP:Object-Oriented Programming)とは、プログラムの構成要素を「オブジェクト」という単位で整理し、現実の世界に近い形で処理を記述できる手法です。
オブジェクトとは、「データ(状態)」と「メソッド(ふるまい)」をまとめたものです。
Rubyの基本構文:クラスとオブジェクト
class Dog
def initialize(name)
@name = name
end
def bark
puts "#{@name}はワンと鳴きます"
end
end
dog1 = Dog.new("ポチ")
dog1.bark
この例では、Dog
というクラスを定義し、dog1
というオブジェクトを生成しています。
@name
はインスタンス変数で、それぞれのオブジェクトの状態を保持します。
クラスとは?
クラスは、オブジェクトの設計図のようなものです。
Rubyではクラスの中にメソッド(処理)や変数(データ)を定義して、そこからオブジェクト(実体)を作ります。
オブジェクト指向の3つの柱
- カプセル化:データと処理をひとつにまとめる
- 継承:既存のクラスの機能を引き継ぎ、新しいクラスを作る
- ポリモーフィズム(多態性):同じメソッド名で異なる動作をさせる
すべてがオブジェクト
puts 5.class # Integer
puts "hello".class # String
puts true.class # TrueClass
puts nil.class # NilClass
このように、数値や文字列、trueやnilでさえもオブジェクトとして扱われ、クラスが存在します。
これは他の言語と比べてRubyの大きな特徴のひとつです。
まとめ
Rubyにおけるオブジェクト指向は、シンプルかつ強力です。
クラスやメソッド、インスタンス変数をうまく活用することで、現実世界に近い形でわかりやすいプログラムが書けます。
まずは自分でクラスを作ってみて、オブジェクトを生成・操作する流れを体験してみましょう!