アクセス制御をまとめて設定する
アクセス制御を設定するには前のページで確認したとおり「public :メソッド名」又は「private :メソッド名」で個々のメソッド毎に設定していましたが、多くのメソッドを定義する場合はまとめてアクセス制御を設定することが可能です。
プログラム中に「public」とだけ記述すると、それ以降に定義されたメソッドは全て「public」なメソッドとなります。また同様に「private」とだけ記述すると、それ以降に定義されたメソッドは全て「private」なメソッドとなります。
class Car public def accele(acceletime=1) print("アクセルを踏みました¥n") print("スピードは", calcSpeed(acceletime), "Kmです¥n") end def brake print("ブレーキを踏みました¥n") end private def calcSpeed(acceletime) return acceletime * 10 end end car = Car.new car.accele(10)
上記の例では「public」の後に「accele」メソッドと「brake」メソッドが定義されており、この2つのメソッドは「public」なメソッドとなります。またその後で「private」が記述されておりその後に定義されている「calcSpeed」メソッドは「private」なメソッドとなります。
このようにアクセス制御が同じメソッドをまとめて記述することで複数のメソッドに対してまとめてアクセス制御を設定する事が可能です。
サンプルプログラム
では実際にサンプルを試してみます。
class Car private def calcSpeed(acceletime) return acceletime * 10 end public def accele(acceletime=1) print("アクセルを踏みました¥n") print("スピードは", calcSpeed(acceletime), "Kmです¥n") end def brake print("ブレーキを踏みました¥n") end end car = Car.new car.accele(10)
上記を実行すると次のように表示されます。
( Written by Tatsuo Ikura )