protected
プロテクテッド(オブジェクト指向プログラミング)
意味 クラスとサブクラス内でのみアクセス可能
protectedとは?
protectedは、クラス自身とそのサブクラス内からのみアクセス可能なメソッドや変数を定義するためのアクセス修飾子です。同じクラスの異なるインスタンス間でも呼び出すことができる特徴があります。
protectedの具体的な使い方
protectedメソッドの定義と使用例
class Employee
def initialize(name, salary)
@name = name
@salary = salary
end
def name
@name
end
def <=>(other)
salary <=> other.salary
end
protected
def salary
@salary
end
end
class Manager < Employee
def initialize(name, salary, bonus)
super(name, salary)
@bonus = bonus
end
def total_compensation
salary + @bonus
end
def <=>(other)
total_compensation <=> other.total_compensation
end
end
employee1 = Employee.new("山田", 300000)
employee2 = Employee.new("鈴木", 320000)
manager = Manager.new("佐藤", 400000, 100000)
puts employee1 <=> employee2
puts manager <=> employee1
puts "マネージャーの総報酬: #{manager.total_compensation}円"
# puts employee1.salary # これはエラーになります
👇出力結果
-1
1
マネージャーの総報酬: 500000円
この例では、Employeeクラスにprotectedメソッドsalaryを定義しています。このメソッドは同じクラスや子クラスのインスタンスからアクセスできますが、クラス外からは直接呼び出せません。<=>メソッドで従業員の給与を比較したり、Managerクラスでtotal_compensationを計算したりするのに使用されています。
protectedに関するよくある質問
protectedが学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのprotectedや<、alias、super、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Rubyを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!