Ruby (on Rails)入門 ~現在、勉強中(2015年6月開始)~

Ruby、Ruby on Railsを勉強中。参考書を読んだり、ネット情報を読むだけでは忘れてしまうのでメモする。

【Ruby (on Rails)入門メモ#?】クラスを作成する

すでに定義されているクラスを拡張して新しいクラスを作成すること。
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()

■勉強で使用中書籍
・他のプログラミング言語を使える人向け。[現在使用中]
プログラミング初心者には向かない。

・たのしいRubyを読み終えたら勉強するつもり

初めてのRuby

初めてのRuby

Railsを勉強するなら、まずはこれがいいらしい

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版