すでに定義されているクラスを拡張して新しいクラスを作成すること。
RubyのすべてのクラスはBasicObjectクラスのサブクラスとなっている。
■継承関係にあるかの確認
#継承関係にあるかの確認(is_a?メソッド) text = "たなかさん" p text.is_a?(String) # true p text.is_a?(BasicObject) # true p text.is_a?(Array) # false
■クラスを作成する
※クラス名は必ず大文字にしなければいけない。
##クラスの作成 class Person #initializeメソッド def initialize(name="") #インスタンス変数に値をセット @name = name end #メソッド def hi puts "こんにちは、#{@name}さん" end end #作成したクラスを使う yamamoto = Person.new("山本") yamamoto.hi()
■アクセサメソッド
オブジェクトの外部からインスタンス変数にアクセスする場合に使う。
##クラスの作成 class Person #initializeメソッド def initialize(name="") #インスタンス変数に値をセット @name = name end #@nameのアクセサ def name @name end def name=(value) @name = value end #メソッド def hi puts "こんにちは、#{@name}さん" end end #作成したクラスを使う yamamoto = Person.new("山本") puts yamamoto.name
■アクセサを自動で定義する
インスタンス変数の数が多い場合、
それぞれにアクセサメソッドを定義するのはわずらわしいし、
間違いが発生する。
自動で定義する方法が用意されている。
attr_reader 参照のみ可能
attr_writer 変更のみ可能
attr_accessor 参照と変更の両方が可能
##クラスの作成 class Person #アクセサの定義 attr_accessor :name #initializeメソッド def initialize(name="") #インスタンス変数に値をセット @name = name end #メソッド def hi puts "こんにちは、#{@name}さん" end end #作成したクラスを使う yamamoto = Person.new("山本") puts yamamoto.name
■self
インスタンスメソッドの中でメソッドのレシーバーを参照するために使う。
##クラスの作成 class Person #アクセサの定義 attr_accessor :name #initializeメソッド def initialize(name="") #インスタンス変数に値をセット @name = name end #メソッド def hi puts "こんにちは、#{@name}さん" end #self.をつけるとレシーバーのnameが参照される def greet puts "私の名前は#{self.name}です。" end #self.を省略すると、暗黙的にselfのnameが呼ばれる def bye puts "さようなら、#{name}です。" end end #作成したクラスを使う yamamoto = Person.new("山本") yamamoto.greet()
■勉強で使用中書籍
・他のプログラミング言語を使える人向け。[現在使用中]
プログラミング初心者には向かない。

- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2013/06/04
- メディア: 単行本
- この商品を含むブログ (31件) を見る
・たのしいRubyを読み終えたら勉強するつもり

- 作者: Yugui
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/06/26
- メディア: 大型本
- 購入: 27人 クリック: 644回
- この商品を含むブログ (253件) を見る
・Railsを勉強するなら、まずはこれがいいらしい

RailsによるアジャイルWebアプリケーション開発 第4版
- 作者: Sam Ruby,Dave Thomas,David Heinemeier Hansson,前田修吾
- 出版社/メーカー: オーム社
- 発売日: 2011/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 206回
- この商品を含むブログ (40件) を見る