作成したクラスを別のプログラムで利用する方法を学ぶこととする。
セクション 13.3 で作成したプログラムを以下に表記する。 ファイル名を``ennClass.rb''として保存することとする。
---------------------------- Program Start ---------------------------- class Enn Pi = 3.141592 def enshu(r) # 円周を求めるメソッド enshuu = 2 * Pi * r return enshuu end def menseki(r) # 面積を求めるメソッド menseki = Pi * r**2 return menseki end def hms(r) # 球の表面積を求めるメソッド hyomen = 4 * Pi * r**2 return hyomen end def tai(r) # 球の体積を求めるメソッド taiseki = 4/3 * Pi * r**3 return taiseki end end if $0 == __FILE__ # 新たに付け加えた部分 a = Enn.new puts a.enshu(5) puts a.menseki(2) puts a.hms(5) puts a.tai(3) end # 新たに付け加えた部分 ---------------------------- Program End ------------------------------
このプログラムを例えば ``ennClass.rb'' と言うファイル名で保存する。 上記リストの
if $0 == __FILE__ ------------------- | プログラムリスト| ------------------- endの部分は、別のプログラムに読み込んだとき、読み飛ばされる部分である。 つまり、この部分は読み込まれない。
では、ここで作成したクラスを利用して、円柱の体積(円柱の体積は
)や、円錐の体積(円錐の体積は
)を
求めるプログラムを作成する。
プログラムを作成する前に ``クラスシート''を作成しておくと良い。 特に書式が決まっている訳ではない。 サンプルを示す。
◎クラスシート例 ファイル名 ennClass.rb クラス名 Enn メソッド (1) enshu(r) 機能 : 円周を求める 変数 : r --> 円の半径 (2) menseki(r) 機能 : 円の面積を求める 変数 : r --> 円の半径 (3) hms(r) 機能 : 球の表面を求める 変数 : r --> 円の半径 (4) tai(r) 機能 : 球の体積を求める 変数 : r --> 円の半径上記はあくまでもサンプルである。 どのようにクラスをシートを書くかは、色々な考え方がある。 既に様々なクラスが作成され、ホームページ等で公開されている。
それでは、この「クラスシート」を見ながら、円柱の体積や円錐の体積を作るプ ログラムを作成する。
---------------------------- Program Start ---------------------------- require 'ennClass' # 先ほどのプログラムを読み込んでいる。 class Taiseki def enchu(r,h) # 円柱の体積を求めるためのメソッド定義 a = Enn.new # 読み込んだプログラムの "Enn" クラスのインスタンスを # 生成している。 b = a.menseki(r) v = b * h return v end end if $0 == __FILE__ # 今回も付け加えるとよい。 a = Taiseki.new printf("円柱の体積は %f です。\n", a.enchu(2,5)) end ---------------------------- Program End ------------------------------