» 2010 » 11月 » 02のブログ記事

キャンペーン期間:2010年10月1日-2010年11月30日
<期間限定!新規月額プラン契約特典>

キャンペーン期間中にWiMAX機器(通信カード(ルータ機能付含む)もしくは内蔵PC)を
ご購入頂き、同時に「月額プラン」へ新規ご加入頂くと最大13カ月に限り「月額プラン」の
基本使用料として4,280円/月を適用します!

知り合いがWiMAXを使用しているので通信状況や速度について聞いてみたところ、
ストレス無くネットにつながるようです。ただしUSBの端末などは熱を持つので
長時間使用などしてると寿命が心配と言っていました。
場所にもよると思いますがニコニコ動画やユーチューブ、オンラインゲーム等は
快適に使用できるみたいです。



Rubyでプログラムを作る際は「クラス」を定義して、そのオブジェクトを作ってプログラムを組み立てて行きます。
クラスの定義は以下のようにします。

class クラス名

  def initialize()
    処理
  end

  def メソッド

  end

end

ではカレンダープログラムをクラスにしたコードを見て行きます。

#クラス定義

require "date"

class Calendar

  def initialize(y,m)
     @firstday = Date.new(y,m)
     @lastday = Date.new(y,m,-1)
  end
  
  def disp
     calendar = @firstday.strftime("%Y年  %m月")+"\n"
     calendar += "日 月 火 水 木 金 土"+"\n"

     if @firstday.wday != 0 then
       for x in 1..@firstday.wday do
          calendar += "   "
       end
     end

     for d in 1..@lastday.day do
       if @firstday.wday == 6 then
         calendar += sprintf("%2s ",d)+"\n"       
       else
         calendar += sprintf("%2s ",d)
       end
       @firstday = @firstday.next
     end

     puts calendar
   end
end


#クラスの利用
a = Calendar.new(2010,9)
a.disp

5行目でクラス名を決めています。なお最初の文字は大文字で書く必要があります。
7行目の「def initialize(y,m)」はコンストラクタです。これはクラスからオブジェクトを作るとき
最初に実行されるメソッドです。このメソッドはクラスに定義してある変数の初期化をするのに使用します。

def initialize(y,m)
     @firstday = Date.new(y,m)
     @lastday = Date.new(y,m,-1)
end

今回つくるカレンダークラスでは「initialize(y,m)」で引数に年と月を与えて「Date.new(y,m)」に渡し
「@firstday」と「@lastday」をDateクラスのオブジェクトとして利用します。変数名の前に「@」が付いていますが
これはクラス定義の中であればどこでも利用できる変数です。
12行目の「disp」メソッドは前回作成したプログラムの「show_calendar(y,m)」とほぼ同じです。
「disp」メソッドでコンソールにカレンダーを出力します。
36行目の「a = Calendar.new(2010,9)」でカレンダークラスのオブジェクトを作成しています。
「new(2010,9)」でオブジェクトを作成していますがカレンダークラスの内部では
「initialize(y,m)」が呼び出されて引数の値で初期化されています。

2010年11月
« 10月   3月 »
 123456
78910111213
14151617181920
21222324252627
282930  

カテゴリー

広告

現在の住まい、将来はVPSへ引越します。 ロリポップの上位版です。

広告

広告

最近のコメント

    広告

    Railsを動かす予定のVPS。無料キャンペーン中。

    広告