Rubyのオブジェクト


スポンサーリンク

オブジェクトとは、データと手続きをまとめたもの。
Rubyではクラス名は必ず大文字で始めるルールがある。

参照

「=」は左辺に「右辺の値への参照(オブジェクトリファレンス)」を代入する。
つまり、左辺に右辺の値を参照させる。

str2 = "hello!"
str1 = str2
とすると、str1は"hello!"という文字列が格納されるのではなく、str2と同じインスタンスを参照することになる。

# -*- coding: UTF-8 -*-

str2 = "hello!"

str1 = str2
puts str1 #hello!

str1.upcase!
puts str2 #"HELLO"


@nameのように「@をつけるとインスタンス変数を定義できる。
attr_reader
attr_writer
attr_accessor
はアクセサメソッドといい、セッターやゲッターのような働きをする。

以下のサンプルを実行してみる。

# -*- coding: UTF-8 -*-

class Person
	attr_accessor:name
	attr_accessor:age

	def initialize(name)
		@name = name
		@age = -1
	end

	def greet()
		puts "hello!Im " + @name
	end

	def introduce_myself
		puts "I\'m #{@name}." + " My age is #{@age}" 
	end
end

ichiro = Person.new("ichiro")
ichiro.age = 39
ichiro.introduce_myself

すると、以下のように表示される。

>ruby sample.rb
I'm ichiro. My age is 39

Rubyでシングルクオテーションをエスケープしたいとき、つまり、文字列の中にシングルクオテーション(')を入れたいときは、「\」←ウィンドウズだったら円マークをシングルクオテーションの前に挿入する。

Rubyの定番の入門書。
多くの人がこの本からRubyをスタートするようだ。