アクセス制限をまとめて設定する
メソッドに対するアクセス制限を設定するには、個々のメソッドに対して 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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。