クラスとインスタンスを使って、出力結果がこうなるようにしたい。
著者: うさぎさん
タイトル: プログラミングの楽しさ
本文: Hello World !
class Book
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
end
答えはこちら。
class Book
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
def author
@author
end
def title
@title
end
def content
@content
end
end
article = Book.new("うさぎさん", "プログラミングの楽しさ", "Hello World!")
puts "著者: #{article.author}"
puts "タイトル: #{article.title}"
puts "本文: #{article.content}"
Book,newでインスタンスを生成し、変数articleに代入します。その際に、うさぎさん、プログラミングの楽しさ、Hello World!の3つ実引数を指定します。
initializeメソッドを定義して、インスタンス変数を宣言しました。実引数として指定した値を、仮引数のauthor、 title、contentにそれぞれ渡しています。
そうすることにより、initializeメソッドで宣言されたインスタンス変数に、うさぎさん、プログラミングの楽しさ、Hello World!という3つの値が代入されます。
上記インスタンス変数の値を返すための専用のメソッドをそれぞれ定義しています。
最後に、定義づけたメソッドを呼び出しています。