Ruby でクラス内のメソッドを外部から読み込まれないようにするにはprivateを使用します。

読み込まれたくないメソッドの上の行にprivateを入力しましょう。

class Fluit
  def initialize(product)
    @product = product
  end

  private
    def fluit
      puts @product
    end
end

banana = Fluit.new("バナナ")
banana.fluit

ターミナルで実行すると、

image2

fluit は、プライベートメソッドです、というエラーが発生しました。

プライベートメソッドを使用するには、クラス内部で呼び出す必要があります。

class Fluit
  def initialize(product)
    @product = product
  end

  def food
    fluit
  end

  private
    def fluit
      puts @product
    end
end

banana = Fluit.new("バナナ")
banana.food

image3

food メソッドから fluit メソッドを読み込みました。

プライベートメソッドの下に書いたメソッドは、全てプライベートメソッドになるので、注意しましょう。

class Fluit
  def initialize(product)
    @product = product
  end

  def food
    fluit
  end

  private
    def fluit
      puts @product
    end

    def process_food
      puts @product
    end
end

banana = Fluit.new("バナナ")
banana.food

juice = Fluit.new("バナナジュース")
juice.process_food

image4

process_food メソッドは、プライベートメソッドです、というエラーが発生しました。

ブログ一覧