こんにちは、プログラミング初学者"fujitacoma"です!
今回は、Ruby練習問題シリーズの3回目です。
前回まではハッシュ問題でしたが、今回はクラスとインスタンスの問題です!
それでは早速始めます!
問題
class Article
def initialize(author, title, content)
@author = author
@title = title
@content = content
end
end
上記のコードに追加を行い、以下の出力結果を得られるようにしてください。
ただし、クラスとインスタンスを使用するものとします。
著者: 阿部
タイトル: Rubyの素晴らしさについて
本文: Awesome Ruby!
解答と解説
模範解答
class Article
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 = Article.new("阿部", "Rubyの素晴らしさについて", "Awesome Ruby!")
puts "著者: #{article.author}"
puts "タイトル: #{article.title}"
puts "本文: #{article.content}"
解説
(23行目)Article.newでインスタンスを生成し、変数articleに代入します。
その際に、阿部
、Rubyの素晴らしさについて
、Awesome Ruby!
の3つ実引数を指定します。
(3〜7行目)initializeメソッドを定義して、インスタンス変数を宣言しました。
実引数として指定した値を、仮引数のauthor
、title
、content
にそれぞれ渡しています。
そうすることにより、initializeメソッドで宣言されたインスタンス変数に、阿部
、Rubyの素晴らしさについて
、Awesome Ruby!
という3つの値が代入されます。
(9〜19行目)上記インスタンス変数の値を返すための専用のメソッドをそれぞれ定義しています。
(24〜26行目)最後に、9〜19行目で定義づけたメソッドを呼び出しています。
最後に
いかがでしたでしょうか!
お恥ずかしながら、値を返すメソッドの定義を忘れており、1回で解けませんでした。
なぜ定義する必要があるのか、といったところも含めて覚えきれていないところがありますね。
頑張ります!!!
ここまでお読み頂き、有難うございました!