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.

投稿 132 privateメソッド 2024/11/09

0
Posted at

本日の勉強時間 3H

privateメソッドは、Rubyのクラスの中で定義されるメソッドの一種で、クラスの外からは直接呼び出せないメソッドです。


基本のイメージ

たとえば、クラスを会社にたとえると、privateメソッドは「社内だけで使う機密書類」みたいなものです。他のクラスや外部から直接見ることができないようにすることで、クラスの内部でだけ安全に処理を進めることができます。


privateメソッドの目的

クラスの外からアクセスされないようにする:クラスの内部でだけ使うメソッドにしておくことで、誤って外から変更されないように守ります。
クラス内部の動作を隠す:クラスが何をしているかを隠すことができ、使う側にとってシンプルなAPI(使いやすいインターフェイス)だけを公開できます。


privateメソッドの使い方

以下の例で、privateメソッドを定義する方法を見てみましょう:

class User
  def initialize(name)
    @name = name
  end

  def greeting
    "Hello, #{name_with_prefix}"
  end

  private

  def name_with_prefix
    "Mr./Ms. #{@name}"
  end
end

user = User.new("Alice")
puts user.greeting      #=> "Hello, Mr./Ms. Alice"
puts user.name_with_prefix  #=> エラーが出る

この例の説明

name_with_prefixメソッド:privateメソッドです。greetingの中でだけ使われており、外から直接呼び出せません。
greetingメソッド:publicメソッドなので、外部から呼び出せます。
もしname_with_prefixを直接使おうとすると、エラーが出てしまいます。これはprivateメソッドだからであり、あくまでUserクラスの内部で使うためのメソッドだとわかります。


なぜprivateメソッドを使うか?

クラスの設計をシンプルにし、不要なメソッドを隠すことで、エラーを防ぎ、クラスの使い方をわかりやすくします。

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?