0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ruby 練習問題3 ~クラスとインスタンスの概念を用いたコードの作成~

Last updated at Posted at 2022-07-05

こんにちは、プログラミング初学者"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メソッドを定義して、インスタンス変数を宣言しました。
実引数として指定した値を、仮引数のauthortitlecontentにそれぞれ渡しています。

そうすることにより、initializeメソッドで宣言されたインスタンス変数に、阿部Rubyの素晴らしさについてAwesome Ruby!という3つの値が代入されます。

(9〜19行目)上記インスタンス変数の値を返すための専用のメソッドをそれぞれ定義しています。

(24〜26行目)最後に、9〜19行目で定義づけたメソッドを呼び出しています。

最後に

いかがでしたでしょうか!

お恥ずかしながら、値を返すメソッドの定義を忘れており、1回で解けませんでした。
なぜ定義する必要があるのか、といったところも含めて覚えきれていないところがありますね。
頑張ります!!!

ここまでお読み頂き、有難うございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?