rubyオブジェクト指向(1)クラスとメソッドの関係

最初に、rubyによらずオブジェクト指向プログラミングをする上での基本知識から入ります。

★クラスとメソッドの関係を理解します
クラスを理解するために、まずオブジェクトとクラスの関係を説明します。
クラスとは、オブジェクトの振る舞いを定義するクッキーの型抜き器具のようなものです。

型抜きによって出来上がるクッキー自体がオブジェクトです。そして抜く行為をインスタンス化といいます。オブジェクトを生成する行為です。つまり、型抜き(クラス)は唯一のもので、出来上がるクッキー(オブジェクト)は、抜く行為(インスタンス化)によって複数個を作ることが可能です。
インスタンスという言葉は、コンピュータ上で動いているクラスの実行単位という意味が含まれています。

ここからrubyのクラスの実際の書き方に入ります。

★クラスを書いてみる
クラスの定義は次の通りです。

class クラス名(大文字始まり)
  変数名 = 値
  メソッド
end

クラス名は大文字始まりの決まりです。クラスは0個以上のメソッドを持ちます。つまりメソッドのないクラスもあります。メソッドは処理ですので、このクラスで何かやらせたい処理がなければメソッドがなくてもいいわけです。

クラス内に書くメソッドの定義は次の通りです。

def メソッド名(引数1,引数2,,)
  処理
end

メソッドを抜けるときに評価される値がメソッドの戻り値になります。戻り値とはメソッドの呼び出し元に返す値のことです。(戻り値がないときはnilが返ります)引数はカンマ(,)で区切って列挙します。

★クラスを使うとき
クラスを実際に使うとき(呼び出す時)は、newメソッドを使ってオブジェクトとしてインスタンス化させます。newによってオブジェクトの実行に必要なメモリ領域がコンピュータの中で確保されます。このとき最初にそのクラスのイニシャライザ(後述)が呼び出されます。
例えば、Fooクラスがあったとして、次のようにコードを書くと、

f = Foo.new

Fooというクラスをインスタンス化し、fという変数にオブジェクトを代入し以降、fが使えます。このときfをインスタンス変数、あるいはオブジェクト変数と呼びます。

この記事が気に入ったらサポートをしてみませんか?