Top > Ruby > オブジェクト


オブジェクトとは

Rubyは、オブジェクト指向スクリプト言語です。この「オブジェクト」 の概念が分からず、敬遠されてしまう場合がしばしばありますが、 実はオブジェクトは人間にとって、理解しやすいある「もの」です。


オブジェクトとメソッド

オブジェクト指向言語にとってオブジェクトとは、「機能を持ったもの」です。 例えば、車はボディ、シャーシ、エンジンなどさまざまな部品で構成されています。 さらに、ボディは運転装置、内装、照明などで構成されています。 つまり、車というオブジェクトは複合オブジェクトであり、車を構成する部品自体も、より小さな部品で構成される複合オブジェクトであると考えることができます。

例えば「ハンドル」の機能を使用したい場合は、「車.ハンドル」というように.(ドット) を使用します。通常、Rubyでは「オブジェクト.メソッド」というように記述します。 メソッドとは、オブジェクトに対して機能という意味を持ちます。つまり、「車.ハンドル」 とした場合は、方向転換の機能を指すことになります。


使用例

その1
最初の一歩でのテストプログラムを使用します。 文字列オブジェクト "Hello, world" の size というメソッドを使用してみましょう。
  0
  1
# size メソッド例
puts "Hello, world".size
この size というメソッドは、文字列の長さを返します。 つまり、上記テストプログラムの結果は「12」と表示されたはずです。
その2
大文字と小文字を反転させるメソッド swapcase
  0
puts "Hello, world".swapcase
出力結果は、「hELLO, WORLD」となります。
その3
最後の1文字を切り捨てるメソッド chop
  0
puts "Hello, world".chop
出力結果は、「Hello worl」となります。


厄介な点

オブジェクトは機能を含む概念なので、それを直接見ることはできません。 それでは不便なため、オブジェクトのおおよその内容を工夫して見せてくれる標準出力関数 p() というものがRubyにはあります。

  0
p "Hello, world"
"Hello, world"

puts とは微妙に表示が異なっているのが分かります。 puts とは全く違う表示の場合もあります。今後オブジェクトの内容を調べる時は、このp()を使用します。


変数とオブジェクト

上記の例では、"Hello, world" のような文字列オブジェクトをスクリプトに直接書き込んでいましたが、これをスクリプト中の複数の箇所で使用したい場合、そのたびに"Hello, world" と書くのは面倒です。そこで、オブジェクトに名前を付けてやれば、その名前を呼ぶことでオブジェクトを利用することができる。オブジェクトに付ける名前、正確には変数と言います。

オブジェクトに名前を付けるには、

変数 = オブジェクト

という形式で行い、俗に言う代入です。下記に"Hello, world" というオブジェクトを strTemp という変数に代入し、使用する例です。

  0
  1
  2
strTemp = "Hello, world"
p strTemp            # "Hello, world" と表示
p strTemp.swapcase   # "hELLO, WORLD" と表示


その他の例1

Rubyの変数には、文字列・数値、その他何でも同じように代入することができます。 例えば、以下のような例の場合でも正しく期待通りの値が表示されます。

  0
  1
  2
totalline = 3000
rubybook = 2500
p totalline - rubybook  # 500 と表示される


その他の例2

Rubyで言う変数とは、オブジェクトを指すポインタ(矢)の様なものである。 例えば、下記のような場合は2個の変数(ポインタ)が同じオブジェクトを指している事になる。

  0
  1
  2
  3
greet = "Hello, world"
p greet # Hello, world と表示される
salute = greet
p salute # Hello, world と表示される

リロード   凍結解除 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 03 Jun 2019 14:37:49 UTC (912d)