アクセス制御をまとめて設定する
アクセス制御を設定するには前のページで確認したとおり「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 )
RubyLife