Rubyはオブジェクト指向言語で、数値、文字列、式などの値はすべてオブジェクトとして扱います。
また、クラスベースのオブジェクト指向言語を主にサポートしており、オブジェクトはそれぞれが特定のクラスに属します。
今回は、クラスの定義などクラスの基礎について説明します。
クラスの基礎
クラスは以下のように定義することができます。
1 2 3 |
class クラス名 処理 end |
クラスを元に作成される新しいオブジェクトのことをインスタンスと呼び、インスタンスは以下のように作成します。
1 |
クラス名.new |
サンプル
次に実際に、クラスを作成してみます。
以下は、中身をなにも持たない空のSampleクラスを定義し、そのインスタンスを変数にsに作成する例です。
1 2 3 4 5 6 |
class Sample end s = Sample.new puts s.class #=> Sample |
sというオブジェクトにs.classでクラス名を問い合わせ、putsで表示しています。
定義していないのに、Sampleのオブジェクトに対してnewとかclassというメソッドの呼び出しができたのは、何も指定していない場合もごく基本的なメソッドは使えるようになっているためです。
クラスのメソッド定義
次にメソッドを定義してみます。クラスのメソッド定義は、class~endの間にdef~endで定義します。
1 2 3 4 5 6 7 8 9 |
class Sample def hello puts "Hello" end end s = Sample.new s.hello #=> Hello |
このプログラムでは、Sampleクラスのメソッドとしてhelloメソッドを定義しています。
インスタンスが作成され、helloメソッドが呼ばれ"Hello”が表示されます。
クラスの役割
クラスは他言語のクラスと同じく、対象とするオブジェクトを表したりメソッドをまとめる働きがあります。
さらに、「同じコードを書かない」というDRY原則(Don't Repeat Yourself)を実現するためにも非常に重要になります。
Rubyではクラスのほかにモジュールという機能などもサポートされ、オブジェクト指向プログラミングに活用することができます。