メタプログラミング1章 準備
第一章は分量も多くないため、頭の整理のため オブジェクト志向についてまとめておきます。
クラス
教科書通りの説明ですと、クラスとは「設計図」です。 よくある例ですと、たい焼きの型ですね オブジェクト志向は再利用を目的としています。
例えば、「たい焼き」を構成するものは 「おおきさ」「素材」「あんこ」「価格」 といったものがあると思います。
ここでは「たい焼き」の情報(素材・中身・個数)を 表示するプログラムを作ります。
今回はクラスを用いて表現してみます。
素材は共通的に用いるため、 クラス変数 を用います。 クラス変数は頭に「@@」をつけます。 代入可能でクラス内での共通的な定数です。
実行方法はclass.newでオブジェクト化して、メソッドを使用します。 initializeはオブジェクトを作成する際に実行した際、自動で呼び出す処理です。intializeは引数を指定することが出来ます。
オブジェクト化した際のメソッド「order」は インスタンスメソッドと呼ばれます。 インスタンスメソッドはクラスから作成されたオブジェクトしか 呼び出すことは出来ません。
class Taiyaki # (素材・中身・個数) @@material = "komugi" #素材は決まっている。 def initialize(order=1,content="azuki") #初期設定 @order_num = order @order_content = content end def order #インスタンスメソッド puts "素材は#{@@material}です。個数は\n#{@order_num}\n中身は#{@order_content}" end end puts Taiyaki.new.order puts Taiyaki.new(2,"チーズ").order