Out Put 37

どんな挑戦も不可能はない!30代未経験からのエンジニア転職ブログ

Rubyの基礎構文②

Ruby

クラスの定義とメソッド

class Name

end

クラスの定義:キャメルケースでクラス名を記述する。

 

・キャメルケースとは?

UserName このように、

各単語の区切りを大文字で記述する方法です。

大文字の部分がラクダのコブに似ていることが名前の由来とされています。

他にも、

user_name  スネークケース

という記述法もあり、

使用するプログラミング言語の種類や場面によって使い分けられています。

 

・クラスとは?

メソッドのまとまり = オブジェクト として扱われます。

end までの間に定義されたメソッドやインスタンス変数は呼び出して使用することができます。

 

インスタンス変数とは?

@を先頭につけた変数。

@name = name

@nameというインスタンス変数に nameを代入している。

インスタンス変数を使用するためには、

インスタンス変数にアクセスするためのメソッドが必要になります。

def name

@name

end

このようにインスタンス変数にアクセスするメソッドを記述します。

 

インスタンス変数の中身を変えるには?

インスタンス変数の中身を変えるためのメソッドを記述します。

def name(new_name)

@name = new_name

end

クラスの外から仮引数を受け取ることができます。

 

・コードをまとめよう!

class Book

 def initialize(name = 'foo' )

   @name = name

 end

 

 def name

   @name = name

 end

 

 def name(new_name)

    @name = new_name

 end

end

 

book = Book.new

puts book.name

book.name = 'foga'

puts book.name

 

出力結果: foo

                      fuga

このままだと、処理が増える度に記述が増えて冗長になる。

そこで、

「accessorメソッドでまとめる!」

class Book

attr_accessor :name

 def initialize(name = 'foo' )

   @name = name

 end

end

 

book = Book.new

puts book.name

book.name = 'foga'

puts book.name

 

attr_accessorによって指定したシンボル名のインスタンス変数の値を取得するメソッドと値を更新するメソッドを作成することができる。

 

補足:initializeメソッド

特別な意味を持つメソッドです。

オブジェクトが生成されるタイミングで自動的にメソッドが実行されます。

 

今日はここまで、

また明日もRuby学習がんばります!