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学習がんばります!