カプセル化とは
⇨クラス外部から不用意にメソッドが実行されるのを防ぐこと
例 メソッドのカプセル化なし
def greet puts "こんにちは" end greet 出力結果 こんにちは
このようにメソッド名だけで処理を「どこからでも」呼ぶことができる
このようなメソッドだと例えば"greet"という英単語を使いたかっただけなのに間違ってgreetメソッドが呼ばれ実行される可能性がある.
それの何がいけないかというと例えばgreetメソッドの中身が「給料の支払いに関しての処理」を行なっていたとしたら間違った使われ方をすると給料の金額が誤って計算されることになる.
そういうミスをしないためにカプセル化は使われる.
実はクラスの中に定義されたメソッドは全てカプセル化されている。
class Aisatu def greet puts "こんにちは" end end
このようにクラス内にメソッドを定義すると先ほどのように下記のようにメソッドを呼び出そうとすると
greet 出力結果 undefined local variable or method `greet' for main:Object (NameError)
のようにgreetメソッドは定義されいていないよというエラーになりどこでもメソッドが呼べないように守ることができる。