定数

広告

クラス内で定数を定義することが出来ます。定数についての詳しい情報は『定数』を参照して下さい。定数はアルファベットの大文字で始まる定数名に対して一度だけ値を格納する事ができます。

class Reji
  SHOUHIZEI = 0.05

  def initialize(init=0)
    @sum = init
  end
  
  def kounyuu(kingaku)
    @sum += kingaku
  end
  
  def goukei()
    return @sum * (1 + SHOUHIZEI)
  end
end

reji = Reji.new(0)
reji.kounyuu(100)
reji.kounyuu(80)
print(reji.goukei())

上記の例ではクラス「Reji」内で定数「SHOUHIZEI」を定義しています。なおクラス内の場合もメソッドの中では定数は定義できません。

クラス外から定数の参照

クラス内で定義された定数は、次のように記述することでクラス外で参照する事ができます。

クラス名::定数名

クラス名の後にコロンを2つ重ねて定数名を記述します。例えば先ほどのサンプルであれば次のように記述します。

print(Reji::SHOUHIZEI)

なお「::」はメソッドの場合の呼び出しでも使用できる方法ですが、メソッドのように「.」だけを使って「クラス名.定数名」のようには使用できませんので注意して下さい。

サンプルプログラム

では実際に試してみます。

ClassTest7.rb

class Reji
  SHOUHIZEI = 0.05

  def initialize(init=0)
    @sum = init
  end
  
  def kounyuu(kingaku)
    @sum += kingaku
    print("お買い上げ:", kingaku, "¥n")
  end
  
  def goukei()
    return @sum * (1 + SHOUHIZEI)
  end
end

reji = Reji.new(0)
reji.kounyuu(100)
reji.kounyuu(80)
print("合計金額:", reji.goukei(), "¥n")

print("消費税率:", Reji::SHOUHIZEI)

上記を実行すると次のように表示されます。

クラス内での定数

( Written by Tatsuo Ikura )