数あるプログラム言語の中で、今最も勢いのある言語の一つRuby。

別の言語のプログラマ、プログラムに興味はあるけどやったことない人。
みんなで一緒にRubyを学びましょう。

公開日:2008.02.13

クラスとメソッド

この記事はRubyやirbなどの環境構築が終わっていることを前提としています。 まだ環境構築ができていない方は以下の記事を参照して構築してください。

Rubyのインストール

今回はクラスとメソッドというものについて触れます。 オブジェクト指向言語を触ったことのある人にとっては常識的なことですね。

クラスというのは「モノ」を表します。 そしてクラスはその「モノ」に特有の操作であるメソッドを持ちます。 わかりにくいので、例をあげましょう。

「ファイル」って知ってますよね? あれは「モノ」です。 そしてその「ファイル」に対して、我々は色んな操作をします。 ファイルを開いたり、移動したり、削除したり・・・。 この操作がメソッドなのです。 ですのでファイルをコピーしたい、と思ったら ファイルという「クラス」に対してコピーするという「メソッド」を呼び出せばいいのです。 他のありとあらゆる処理も同じ方法でできます。

ここでは別の例として「ディレクトリ」を表すクラスで試しましょう。 Windowsでは一般的にフォルダというものですね。 irbで以下の入力をしてください。

Dir.pwd

僕の環境では以下の文字列が表示されました。

C:/Documents and Settings/xxxx

これは現在irbが実行されているカレント・ディレクトリの場所です。 Windowsのファイルシステムの¥マークは/(スラッシュ)として表します。 Dirというクラスに対してpwdメソッドを実行するとその文字列が返されるわけですね。

じゃあ次はDirクラスのchdirメソッドを使用しましょう。 鋭い人はお分かりの通り、chdirはディレクトリ移動のメソッドです。

Dir.chdir "C:/"

もしくは

Dir.chdir("C:/")

と入力するとCドライブ直下に移動します。 ここでchdirメソッドに渡している文字列を引数といいます。 ディレクトリ移動もそうですが、メソッドによっては移動先などといった情報がないと処理を実行できないものがあります。 そのようなときに送るパラメータのことです。

さて、プログラミング経験者の方が退屈するといけないので、少し掘り下げた話をします。 わからない人は読み飛ばしていただいて何ら問題ありません。 まず以下の入力をしてください。

Dir.methods

何やらズラズラと表示されたでしょうか。 これはDirクラスが持っているメソッドを全て列挙した配列です。 厳密に言うとクラス(スタティック)メソッドです。 同じように以下の入力をしてみましょう。

1.methods

前回、数値もオブジェクトでありメソッドを持つ、と書きましたがそれが わかっていただけると思います。 これらはFixnumという数値型クラスのインスタンスメソッドです。

さらに、その中をよく見ていただくと+, -, *, /などがあります。 そうです、Rubyにおいて「1 + 2」と入力するのは「1という値を持ったFixnum型 オブジェクトの"+"メソッドを2という引数で実行している」のです。 「1.+(2)」という書き方でも3という解が得られますが、簡潔に書けるように 便宜が図られています。

Rubyは演算子メソッドをオーバーライドすることで+というメソッドの挙動を 変えることもできます。

以上、掘り下げた話終わり。 次回から少しずつプログラムを書き始めていきます。