アクセス制限をまとめて設定する
メソッドに対するアクセス制限を設定するには、個々のメソッドに対して public または private (または protected )を設定しますが、多くのメソッドを定義する場合はまとめてアクセス制限を設定することが可能です。ここでは Ruby でメソッドに対するアクセス制限をまとめて設定する方法について解説します。
(Last modified: )
アクセス制限をまとめて設定する
プログラム中に public とだけ記述すると、それ以降に定義されたメソッドはすべて public なメソッドとなります。また同じように private とだけ記述すると、それ以降に定義されたメソッドはすべて private なメソッドとなります。
例えば次のようにように記述します。
class Car public def accele puts("アクセルを踏みました") speedChange end def brake puts("ブレーキを踏みました") speedChange end private def speedChange puts("スピードが変わりました") end end car = Car.new car.accele car.brake
上記の例では public のあとに「accele」メソッドと「brake」メソッドが定義されており、この2つのメソッドは public なメソッドとなります。またその後で private のあとに「calcSpeed」メソッドが定義されており、このメソッドは private なメソッドとなります。
これは次のように一つ一つのメソッドに対して設定した場合と同じです。
class Car
def accele
puts("アクセルを踏みました")
speedChange
end
public :accele
def brake
puts("ブレーキを踏みました")
speedChange
end
public :brake
def speedChange
puts("スピードが変わりました")
end
private :speedChange
end
car = Car.new
car.accele
car.brake
このようにアクセス制限が同じメソッドをまとめて記述することで複数のメソッドに対してまとめてアクセス制限を設定することが可能です。
では実際にサンプルを試してみます。
# encoding: UTF-8
class Car
public
def accele
puts("アクセルを踏みました")
speedChange
end
def brake
puts("ブレーキを踏みました")
speedChange
end
private
def speedChange
puts("スピードが変わりました")
end
end
car = Car.new
car.accele
car.brake
上記を実行すると次のように表示されます。
-- --
Ruby でメソッドに対するアクセス制限をまとめて設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。