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 インスタンスを生成してプログラムを作成

Posted at

インスタンスの生成を行ってプログラムをつくる

ターミナルで、以下のように出力されるようプログラムを作っていきます。

採れたて新鮮な果実です
リンゴは120円です
オレンジは200円です
イチゴは60円です
# ターミナル
class Fruit

  def self.fresh
    puts "採れたて新鮮な果実です"
  end

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

  def introduce
    puts "#{@name}#{@price}円です"
  end
  end

  apple = Fruit.new("リンゴ", 120)
  orange = Fruit.new("オレンジ", 200)
  strawberry = Fruit.new("イチゴ", 60)

  Fruit.fresh
  apple.introduce
  orange.introduce
  strawberry.introduce

解説

この問題は、もともと条件提示と雛形があり、それに沿って作成していく問題でした。
作成手順を書いていきたいと思います。

  • インスタンスを生成し、インスタンス変数の定義を行います。
    インスタンスを生成するときに引数を書くこと。
    そして、nitializeメソッドについて覚えているか?→忘れていました。
    これはnewメソッドの引数を受け取ることができるメソッドです。
    なので、以下のように書きます。
def initialize(name, price)
  @name = name
  @price = price
end

# メソッド外
apple = Fruit.new("リンゴ", 120)
orange = Fruit.new("オレンジ", 200)
strawberry = Fruit.new("イチゴ", 60)
  • クラスメソッドfreshを定義します

下記のようにしてクラスメソッドを定義します。

class クラス名
  def self.メソッド名
    # 処理
  end
end

# クラスメソッドの呼び出し
クラス名.メソッド名(引数)
def self.fresh
  puts "採れたて新鮮な果実です"
end

putsの内容は、条件で指定があったためこのように書きました。

  • インスタンスメソッドを定義します
def introduce
   puts "#{@name}#{@price}円です"
end
  • クラスメソッドとインスタンスメソッドを呼び出します

クラスメソッド:クラス名.メソッド名
インスタンスメソッド:インスタンス.メソッド名

Fruit.fresh
apple.introduce
orange.introduce
strawberry.introduce
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?