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?

【Ruby初級】クラスメソッドを用いて野菜の金額を表示する

Posted at

問題

以下の要件を満たすVegetableクラスを実装しましょう。

条件

クラスメソッド

メソッド名:description
処理:"新鮮で美味しい野菜です"と表示する

インスタンス変数

name:野菜の名前
color:野菜の色

インスタンスメソッド

メソッド名:initialize
処理:引数で名前と色を受け取り、インスタンス変数に代入します。

メソッド名:details
処理:"【名前】は【色】です"と表示します。

雛形

class Vegetable
  def クラスメソッド
    # 正しくメソッドを定義した上で、ここに処理を記入してください
  end

  def initialize
    # ここに処理を記入してください
  end

  def インスタンスメソッド
    # 正しくメソッドを定義した上で、ここに処理を記入してください
  end
end

# 3つのインスタンスを生成してください

# クラスメソッドを呼び出し、「新鮮で美味しい野菜です」と表示してください
# インスタンス毎にインスタンスメソッドを呼び出し、「【名前】は【色】です」と表示してください

期待している実行結果例

新鮮で美味しい野菜です
キャベツは緑色です
トマトは赤色です
にんじんはオレンジ色です

回答

class Vegetable
  def self.description
    puts "新鮮で美味しい野菜です"
  end

  def initialize(name, color)
    @name = name
    @color = color
  end

  def details
    puts "#{@name}#{@color}です"
  end
end

# 3つのインスタンスを生成してください
cabbage = Vegetable.new("キャベツ", "緑色")
tomato = Vegetable.new("トマト", "赤色")
carrot = Vegetable.new("にんじん", "オレンジ色")

# クラスメソッドを呼び出し、「新鮮で美味しい野菜です」と表示してください
Vegetable.description

# インスタンス毎にインスタンスメソッドを呼び出し、「【名前】は【色】です」と表示してください
cabbage.details
tomato.details
carrot.details

解説

クラスメソッドの定義
def self.description
  puts "新鮮で美味しい野菜です"
end

クラスメソッドself.descriptionを定義し、「新鮮で美味しい野菜です」を表示します。

インスタンス変数の初期化
def initialize(name, color)
  @name = name
  @color = color
end

initializeメソッドで、インスタンス変数@name@colorを初期化します。

インスタンスメソッドの定義
def details
  puts "#{@name}#{@color}です"
end

detailsメソッドで、インスタンス変数@name@colorを使って指定された形式で出力します。

インスタンスの生成
cabbage = Vegetable.new("キャベツ", "緑色")
tomato = Vegetable.new("トマト", "赤色")
carrot = Vegetable.new("にんじん", "オレンジ色")

Vegetableクラスのインスタンスを3つ生成し、それぞれに名前と色を渡します。

クラスメソッドの呼び出し
Vegetable.description

クラスメソッドdescriptionを呼び出して、"新鮮で美味しい野菜です"と表示します。

インスタンスメソッドの呼び出し
cabbage.details
tomato.details
carrot.details

各インスタンスに対してdetailsメソッドを呼び出し、それぞれの名前と色を表示します。

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?