[Ruby]第3回イケテルRails勉強会@東京に行ってきた

前回、2月に雪の最中出席した第2回イケテルRails勉強会でしたが、本日(2008年4月26日)の第3回イケテルRails勉強会にも行ってきました。
しかも今回は行っただけでなく、トークまでさせて貰ったので、朝10時前から夜は20時ごろまで長時間会場に居たにもかかわらず、感覚としてはあっという間だったな、充実。

今回の環境設定については「イケテルRails勉強会セットアップ」を参照すれば、分からないことは殆どないと思う。

とそんなことを言いつつ、開始から約3時間、13時ごろまでずっと、NetBeansでRailsプロジェクトを生成して、Create Tableするために「Rakeタスクの実行(Run Rake Task)」を選択しても、Rakeタスクが表示されず、「一覧を再表示(Refresh list)」としか出ない、という現象に悩まされてかなり泣けた。
NetBeansが6.0だからいけないの?と思い、一旦全部アンインストールして、フォルダも消してNetBeans6.1をインストールし直したのに全く同じ現象。
さらにRakeそのものをアンインストールして、インストールしなおしても直らない。
しかも「一覧を再表示」と言う割に、クリックしても何も起きない。
・・・・ああ楽しみにしてたのに今日一日何も出来ないで過ごすのかしら、これは泣ける、と思ったら、「プロジェクトを作ったパス(Path)って、日本語入ってません?」という神の声が!

ハゥ!入っています。
ごめんなさい、そんなことにも気付かない駄目なtechでごめんなさい、と全力で謝りながらパスに日本語を含まない場所にプロジェクトを作成してみる、・・・・・いやったー、Rakeタスク出たー!

でも躓いたのはそこくらいで、お決まりの円陣で始まり、後はそこここに拍手を挟みながら順調に進むプログラム。
そして14時半ごろ、15分だけ時間を貰って「PHP使いから見たRuby」というタイトルで話をさせて貰った。

ちなみにこの発表資料は、SlideShareからダウンロード出来ますので、自由に使っていただいて構いません。
望んでいるのは「RBCから貰ったものを、増やして誰かに渡し、それがまたRBCに還元されていく」というループですので、これに何かをプラスしたり、削ったりして、より良いものにして使って頂くことを歓迎します。



たった15分の発表なのに、スライドが全部で611枚。
最初の「なぜこの話をするに至ったのか?」という点は、きれいごとではなくかなり本心を書いたつもりで、そこを見てもらえば「なんでこんなにスライドがあるのか?」も分かってもらえる気がします。
実際はうずらフォントを使って書いているので、SlideShareからパワーポイントファイルをダウンロードして使う場合は、ぜひ一手間かけてうずらフォントを入れて使って下さい。

あと、勉強会の内容については、きっとまた色んなブログやRBCのコモンズサイトで詳細に紹介されると思うので、個人的に感じたことを書いておく。

RubyBusinessCommonsを主催されている人たちって、どう表現したらしっくりくるのか、自分でも上手く言えないけれど、「真っ直ぐ」で「嘘偽りがなく」て、すごく「気持ちのいい」人たちなんだよ。
正しいことに背を向けたり、窮屈な思いをしながら働いているのではなく、純粋に夢を実現しようとしている。
だから自分も参加したくなるし、この人たちに自分が何か協力できるならば何でもしたい、という気持ちになるのかな。

久しぶりに感動して泣いてしまった、色々な出会いに感謝しつつ眠ります。
おやすみなさい。

テーマ : Ruby on Rails
ジャンル : コンピュータ

[notTech]普段読まない本を読んでいる、けれどそれが「普段」になりつつある

これは題名を付け間違えただろう、と思うほど、開いた後は割とまともなことが書いてある「あなたの職場のイヤな奴」。
1ページに必ず一度は「クソッタレ」という単語が出てきて、普段言葉遣いの汚い人が読んだら、あまりの連呼に驚いて、かえって自省してしまいそうな気がするよ。
いっそ「あなたの職場のクソッタレ」にした方が、ずっとしっくりきたと思うんだけどな。

覚えておきたい箇所を引用しておく。

品質管理の父と呼ばれた故W・エドワーズ・デミング博士は、かつて「恐怖がその醜い頭をもたげるとき、人々は自己保身に走り、自分が所属している組織をよりよくするための自発的な努力をしなくなる」と語った。
あなたの職場のイヤな奴 P66より引用

たとえどんなに仕事ができても、他人の自尊心を傷つけるような人間は無能と見なされる―そういう職場で働きたいと願うのは、なにもわたしだけではないはずだ。
あなたの職場のイヤな奴 P88より引用

クソッタレ1人によって奪われた幸福感は、ポジティブな影響を与えてくれる人5人に会わないと取り戻せない、と書いてあって、そこにもちょっと納得。
確かにFで始まる単語とか、Sで始まる単語を思わず口走りたくなるような人に会った後は、まるで蚊が血を吸った代わりに痒みの素を置いていくように、ハッピーな何かが奪われて、ムシャクシャした気持ちを置いていかれる気がします。(しかも置いていったくせに、そいつから「何か悪いもの」が減った訳ではない)
どっちになりたいかって言われたら、それば「ポジティブな影響を与えられる人」だけど、そうなるにはやっぱり「ポジティブな影響を与えられる人」の中で暮らしていないと難しいのかな。
努力を、雪崩を起こすくらい山積みにすればいい、頑張ろう。

あなたの職場のイヤな奴あなたの職場のイヤな奴
(2008/04/11)
サットン、I.R. 他

商品詳細を見る


最近、近くに居る人の影響かアスキー新書サイズの本をよく読んでいて、「パラダイス鎖国 忘れられた大国・日本 (アスキー新書 54)」と、「3年で辞めた若者はどこへ行ったのか―アウトサイダーの時代 (ちくま新書 (708))」も読んだのだけれど、この2冊は時間を取って少し詳しく書きたいので、また次のエントリに書きます。
今は「おもてなしの経営学 アップルがソニーを超えた理由 (アスキー新書 55)」を読み始めたところ、ブログを書き続けてそのまま本にした感じの本が多いな、継続は力なり?

テーマ : 日記・日誌
ジャンル : コンピュータ

[GoogleAPI][event]iGoogle Art Cafe@Hills Café/Spaceに行ってきた

12時ごろや、イベントをやっている時間帯は混みそうな気がしたので、14時ごろにiGoogle Art Cafe@Hills Café/Spaceへ行ってみた。
平日で、しかもランチには遅い時間とあって結構空いていたけれど、まるで高校の文化祭のように誰がオーダーを取るのかもよく分からず、スタッフが忙しそうでいて妙に暇そうなのがなんだか面白かった。

Couleur de Google (クルール・ドゥ・グーグル)を食べてみた。
お皿にココアパウダーで「iGoogle Art Cafe」って書いてあったのだけれど、どんなに頑張ってもさらさらな粉なので、崩れてしまったのがちょっと悲しかった・・・まあたった2週間のイベントのためにお皿作らないよね。

CouleurdeGoogle.jpg


きっとこれはiGoogleを広めるためのイベントなんだと思うんだけど、来ていたお客さんはどの人も既にiGoogle使っていそうな人ばっかりだったな。
あとママン(蜘蛛のオブジェ)の直ぐ近くにあるあの場所がカフェだったことを、この時初めて知りました。

ちょうど使っていたテーマのぬいぐるみがあった、これが可愛かったので満足。
朝の7時から夜の23時半まで働いた時の僕はこんな感じになってます。

blue.jpg

テーマ : Google
ジャンル : コンピュータ

[Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプトから分かる8つのこと

このエントリは、「[Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプト」の続きです。

モナベアツスクリプトから分かる8つのことー。

4. モナベアツスクリプトから分かる8つのこと

4-1. コメントは#で始まる

  4-1-1. PHP
    ・「//」で始まる行か、「/*」と「*/」で囲まれた部分がコメント
  4-1-2. Ruby
    ・「#」で始まる行か、「=begin」と「=end」で囲まれた部分がコメント

4-2. 変数の頭に「$」は不要

  4-1. PHP
    ・変数は必ず「$」で始まる
    ・複数の単語からなる場合の命名規則は特になく、$myNameにしても$MyNameにしても$my_nameにしても構わない
    ・大文字と小文字は区別される($abcと$ABCは別の変数)
  4-2. Ruby
    ・ローカル変数の頭に「$」は不要
    ・ローカル変数は頭文字を含めて全て小文字で表記するよう、命名規則で決まっている
    ・複数の単語からなる場合は、「my_name」のように半角アンダースコアで区切る(これも命名規則で決まっている)

4-3. 繰り返しの書き方がちょっと違う

  4-3-1. PHP
    ・1から10まで数えたかったら
      for (i = 0; i < 10; i++) {
        echo i + 1;
      }
  4-3-2. Ruby
    ・1から10まで数えたかったら、for文の場合は
      for i in 1..10
        puts i
      end
    ・でもfor文よりもtimesメソッドを使うことの方が多い
     (do〜endで囲まれた部分を繰り返していて、||で囲まれたiに回数分の数値が代入される、つまり0回目なら0がiに入る)
      10.times do |i|
        puts i + 1
      end

4-4. if文の書き方もちょっと違う

  4-4-1. PHP
    ・判定文は()で括り、命令文は{}で括る
      if ($result === 1) {
        echo 'TRUE';
      } elseif ($result === 0) {
        echo 'FALSE';
      } else {
        echo '?';
      }
  4-4-2. Ruby
    ・判定文も命令文も()や{}で括らないのが基本
    ・{}で括らない代わりに、endキーワードまでが一括り
      if result == 1
        puts 'TRUE'
      elsif result == 0
        puts 'FALSE'
      else
        puts '?'
      end
    ・特にエルスイフがPHPと異なり、「elsif(eがない)」ので注意

4-5. ++や--が使えない

  4-5-1. PHP
    ・「i = i + 1」は「i++」とも表記できる
  4-5-2. Ruby
    ・「++」や「--」がないので「i++」のような表記は出来ない
    ・「i = i + 1」を少しでも省略して表記したかったら「i += 1」を用いる

4-6. 型宣言が不要

  4-6-1. PHP
    ・型の宣言は不要
    ・「a=5; a='hoge'」のように型の異なるものを、1つの変数に複数代入できる
  4-6-2. Ruby
    ・PHPと同じく型の宣言は不要
    ・「a=5; a='hoge'」のように型の異なるものを、1つの変数に複数代入できる

4-7. メソッドの呼び出し方がちょっと違う

  4-7-1. PHP
    ・「echo strval($i + 1)」のような書き方をし、「オブジェクト.メソッド」という書き方はしない
  4-7-2. Ruby
    ・「puts i.to_s」のように「オブジェクト.メソッド」という書き方をする
    ・「result = hoge_object.hogeFunction hikisuu」のように、引数には括弧をつけなくてもよく、省略できる場合はなるべく省略することが多い

4-8. 文字列の連結が.=じゃなくて+=

  4-8-1. PHP
    ・文字列の連結は「$str = 'aaa'; $str .= 'bbb'」のようにする(この場合、「echo &str」すると「aaabbb」となる)
  4-8-2. Ruby
    ・文字列の連結は「str = 'aaa'; str += 'bbb'」のようにする
    ・もしくは「<<」で繋ぐ(「[ruby]文字列の連結 - ぞえ の戯れ言」を見る限り、パフォーマンスとしては「<<」の方がずっと良いようだ)

以上、モナベアツスクリプトから分かる8つのことでした。

もともとこの、
1. [Ruby][PHP]PHP使いから見たRuby - 先ずはHelloWorldしてみる
2. [Ruby][PHP]PHP使いから見たRuby - HelloWorldから分かる8つのこと
3. [Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプト
4. [Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプトから分かる8つのこと
という一連のエントリは、RBCの第2回イケテルRails勉強会@東京で見た、「Java使いから見たRuby」という素晴らしい発表に感銘を受けて書き始めたものなのですが、実はいま、この学びをちょっとした形でRBCに還元することを考えています。

段取り八分、現場二分、頑張らなくては!

間違いや、書き方に不足している点がありましたらコメント欄にてご指摘下さい。
お付き合い頂き、ありがとうございました。

テーマ : プログラミング
ジャンル : コンピュータ

[Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプト

このエントリは、「[Ruby][PHP]PHP使いから見たRuby - HelloWorldから分かる8つのこと」の続きです。

「RubyとPHPを比較しながら説明することで、PHP使いにRubyの楽しさを知ってもらう取っ掛かりになろう!」というのが、ここまでのエントリの趣旨です。
改めて流れを確認すると、
1. [Ruby][PHP]PHP使いから見たRuby - 先ずはHelloWorldしてみる
2. [Ruby][PHP]PHP使いから見たRuby - HelloWorldから分かる8つのこと
ときましたので、ここからは
3. [Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプト
4. [Ruby][PHP]PHP使いから見たRuby - モナベアツスクリプトから分かる8つのこと
と進めていこうと思います。

アイデアの元になったのは「世界のナベアツ − 3の倍数と3がつく数字のときだけアホになります」をRubyで - I am Cruby!というエントリ。

3の倍数と3がつく数字の時はあっち向いたモナーが、そして5の倍数の時はこっち向いたモナーが喋ります。(正確には「3の倍数でも3がつく数字でもなく、且つ5の倍数だった場合」です)
それ以外の場合は、数字をただ表示するだけのシンプルな作りです。

「モナー」と「世界のナベアツ」で「モナベアツ」とは、短絡的なネーミングセンスで恐縮ですが、ではモナベアツスクリプト行ってみよー。

  3-1. PHP
    ・こんなテキストファイルを作り、sample2.phpという名前で保存
      --------------------------------------------------------------
      <?php
        // 3の倍数もしくは3がつく数字の時はこっちを向いたモナーが数字を教えてくれる
        // 3の倍数でも3がつく数字でもなくて、5の倍数の時はあっちを向いたモナーが数字を教えてくれる

        for ($i = 0; $i < 100; $i++) {

          $monaBeatsu = '';

          if (strpbrk(strval($i + 1), '3') !== false || ($i + 1) % 3 === 0) {
            $monaBeatsu = '   ∧_∧   / ̄ ̄ ̄ ̄ ̄' . "\n";
            $monaBeatsu .= '  ( ´∀`)< ' . strval($i + 1) . "\n";
            $monaBeatsu .= '  (   )  \_____' . "\n";
            $monaBeatsu .= '   | | |' . "\n";
            $monaBeatsu .= '  (__)_)';
          } elseif (($i + 1) % 5 === 0) {
            $monaBeatsu = '  ∧_∧   / ̄ ̄ ̄ ̄ ̄' . "\n";
            $monaBeatsu .= ' (    )< ' . strval($i + 1) . "\n";
            $monaBeatsu .= ' ( O ) \_____' . "\n";
            $monaBeatsu .= '  │ │ │' . "\n";
            $monaBeatsu .= ' (__(__)';
          } else {
            $monaBeatsu = $i + 1;
          }

          echo $monaBeatsu . "\n";
        }
      ?>
      --------------------------------------------------------------
    ・コマンドラインで「php sample2.php」を実行する

  3-2. Ruby
    ・こんなテキストファイルを作り、sample2.rbという名前で保存
      --------------------------------------------------------------
      # 3の倍数もしくは3がつく数字の時はこっちを向いたモナーが数字を教えてくれる
      # 3の倍数でも3がつく数字でもなくて、5の倍数の時はあっちを向いたモナーが数字を教えてくれる

      for i in 1..100

        mona_beatsu = '';

        if i.to_s["3"] != nil || (i % 3) == 0
          mona_beatsu = '   ∧_∧   / ̄ ̄ ̄ ̄ ̄' + "\n"
          mona_beatsu += '  ( ´∀`)< ' + i.to_s + "\n"
          mona_beatsu += '  (   )  \_____' + "\n"
          mona_beatsu += '   | | |' + "\n"
          mona_beatsu += '  (__)_)'
        elsif (i % 5) == 0
          mona_beatsu = '  ∧_∧   / ̄ ̄ ̄ ̄ ̄' + "\n"
          mona_beatsu += ' (    )< ' + i.to_s + "\n"
          mona_beatsu += ' ( O ) \_____' + "\n"
          mona_beatsu += '  │ │ │' + "\n"
          mona_beatsu += ' (__(__)'
        else
          mona_beatsu = i
        end

        puts mona_beatsu

      end
      --------------------------------------------------------------
    ・コマンドラインで「ruby sample2.rb」を実行する

次回は、このモナベアツスクリプトから分かる8つのことを説明します。

テーマ : プログラミング
ジャンル : コンピュータ

[event][ActionScript]コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR」に行ってきた

3ヶ月も前に行ったイベントのレポートを、なぜ今さら書くかというと、あまりにも内容が濃く、コリン氏の話の範囲がAS3.0のみならず、オブジェクト指向プログラミングや、またプログラミングに携わる者としての生き方にまで及び、帰ってきてから整理をしていたのだけど「あまりに完璧なセミナ」を完璧に文字情報として残せるほど僕が素晴らしくないことに気付いて途方にくれたからなのです。

本当は
a) これこれこういう流れでセミナが行われて
b) それによってこういうことを学んだよ
と書くべきなんだと思うんだけど、僕のノートにはbしか残っていないし、aを思い出しながら書こうとすると、エントリ上で氏のセミナを僕がもう一度開催するくらいの能力が要る訳です。

だから途方にくれてたんだけど、いつまでも途方にくれたままでもいられないし、あるものだけでも出してしまおうと思い、bだけで投稿してしまうことにします。

もし内容に勘違いや間違いがあればコメント欄にてご指摘下さい。
素晴らしいセミナを開催頂いたアドビシステムズ株式会社、及びコリン・ムック氏に感謝します。



コリン・ムックの「今から始める ActionScript 3.0 - WORLD WIDE TOUR」
2008年1月16日(火) 10:00-19:00@大崎ゲートシティ ウェストタワー B1 ゲートシティホール

◆うまく分類できないけど「これは大事」と思ったこと
  ・1日、1月、1年勉強してプログラミングが完璧になるわけじゃない
   プログラミングは「a long life process」である
   ⇒逆に言えば最初から完璧じゃなくていい、毎日気付きがあって良くなっていく
  ・ActionScript3.0はオブジェクト指向型の言語だが、
   過去の書き方が全く出来ない訳ではないのでそこを勘違いしないで欲しい
  ・ActionScript3.0の中では全てがオブジェクト、もしくはnullだ
  ・不要になったオブジェクトはきちんと停止させよう
   人の人生のように、オブジェクトを作ったら捨てるところまでちゃんと責任を持ってやるべき
  ・オブジェクトは生涯だ(生まれて、そしていずれメモリからデリートされる)
  ・コードは単語と単語の切れ目であれば、途中で改行しても問題ない
  ・説明のつかないリテラルバリュー(マジックナンバー)はつけてはならない
   何箇所にもわたって「2000」と書いてあった場合、
   直すのが大変だし、そもそも2000という数字の根拠が分からないので迂闊に直せない
   そういう時は「静的変数」を「クラス名.静的変数」みたいにして使えば、変更が一箇所で済む
  ・オブジェクト指向型の言語は、オブジェクトが名詞で、メソッドが動詞となり
   現実世界で見たとおりにコードが出来ているので、理解しやすい
   「pet.eat()」のようになるので英語の「名詞 動詞」の書き方と同じ
  ・ASはライブラリのグラフィックスとコードのクラスを結び付けられる(これはギガスゴイ!)
  ・リファレンスエラーは自分の手で探しちゃダメ、IDEが勝手に見つけてくれるのでそれをさっさと直せ
  ・AS3で書くメリットは「(ペットを増やす、ペットの絵を変えるなどの)変更が容易」なこと

◆Package
  ・パッケージは全て小文字で書くこと
  ・入れ子も出来る
  ・「jp.co.hoge」みたいに、よくドメイン名を逆にして使う
  ・ActionScriptの既存のクラスや予約語と被ってしまうことを回避するために、packageを使う
  ・パッケージを作ったら、パッケージと同じ名前のフォルダにそのファイルが入っていなければならない

◆Class
  ・クラスは特性と挙動(ビヘイビア)を表す
  ・クラス名、ファイル名、コンストラクタ名は3つとも同じ名前になるはず
  ・クラスを作るとき、先ずは外側についているべきボタンを考えよう
   (車ならアクセルペダルやハンドルは、ブラックボックス内ではなく外側についていなければならない)
   たとえガソリンで走る自動車から電気自動車に変わっても、アクセルペダルやハンドルの必要性は変わらない
   このようにブラックボックスの中が変わっても、影響を受けないのがパブリックメソッドだ

◆アクセス制限(アクセスコントロールモディファイアー)
  ・クラスに「private」とつけると同じクラスからのみ、そのクラスが使えるようになる
  ・クラスに「internal」とつけると同じパッケージ内からのみ、そのクラスが使えるようになる
  ・何もつけないと「internal」と同じ結果になるが、
   「書き忘れたんじゃなくて、パッケージ外からは触られたくないんだ」という意思を示すためにも
   「internal」はつけるべき
  ・どれをprivateにしてどれをpublicにするのか、基本の姿勢に迷うかもしれないが
   基本的にインスタンス変数はそのクラスの中でのみ変更されるべきなので、privateにすべき
  ・メソッドに「public」をつけると、そのメソッドはどこからでも実行される
  ・メソッドに「internal」をつけると、そのメソッドは同じパッケージ内からのみ実行される
  ・メソッドに「private」をつけると、そのメソッドはそのクラス内からのみ実行される
  ・メソッドのアクセスコントロール制限の付け方に迷ったら、
   オブジェクトを(中で何が起きているのかは分からない)ブラックボックスだと思おう
   その時、外側についているべきボタンが「public」なメソッドだ

◆コンストラクタ
  ・オブジェクトを作ったら直ぐに初期化(イニシャライズ)をすべき!
   なのでコンストラクタメソッドで初期化の指定をしよう
  ・全てのコンストラクタはPublicでなくてはならない
  ・コンストラクタにコンストラクタアーギュメント(引数)をつけることで、オブジェクト生成時に「名前」などが渡せるようになる
  ・コンストラクタアーギュメント(引数)にはデフォルトを設定することも出来る
   Public VirtualPet(name="ken") { }のようにすれば、nameのデフォルト値はkenになる

◆Variable(変数)
  ・変数はオブジェクトへのリファレンスであって、箱(コンテナ)ではない
  ・var pet = new VirtualPer();というステップは、
   petというValiable(変数)にVirtualPetオブジェクトへのリファレンスを代入している
  ・変数は書いた場所によって何の変数なのかが決まる
   *インスタンス変数
   *クラス変数
  ・Stringのような基本データ型は、var a = "dog"; var b = a; var b = "cat"としても
   aがdog、bがcatであり、それぞれ別のものを指している
  ・自分で作ったカスタムクラスなどの場合は、var a = new myBook(); var b =a; b.value = 2000;
   とすると、a.valueも2000になっている(同じものを参照している)
  ・String, boolean, integerなどでなければコピーされることなく同じものを指す
   (both of them pointed a single object)
  ・オブジェクトを参照していた変数にnullを代入すると、そのオブジェクトを消すわけではなく、そのオブジェクトへの参照を切る
   この辺ははhttp://www.func09.com/wordpress/archives/176を読むべし
   「both of them pointed a single object」なのです
  ・クラスの中で「変数の宣言」「コンストラクタ」「メソッド」の順番に書くのは、別にマストなルールではありません
   変数の宣言を一番下に持っていっても、意地悪なだけで問題はありません
  ・なぜ変数をprivateにして隠蔽するのか?
   もし「現在の体重」という変数に直接触れたら、「10000000」や「-100」などが代入できてしまう
   安全のため代入ではなく「変更」だけをさせたい
   そのためにモディファイアメソッド(setter)が存在する
  ・同様にリトリーバルメソッド(getter)を使うことで、
   変数に入っている値をそのまま返すのではなく、パーセント表示にしたりして
   加工した状態で渡すkと尾が可能になる
  ・TypeAnnotationを使おう
   「var 変数名:type = 値;」で、その変数にどのデータタイプの値が入るのかが指定できる
   データタイプは例えばnullやカスタムクラスを含めた全てのクラス
   データタイプには親のクラスを書いても良い、「var 変数名:Food = sushi();」はOK
   逆に「子のデータタイプに親のオブジェクトが入る」のはNG
   これを書いておくだけでコンパイル時にエラーが出る
   (例えばpetオブジェクトは食えないので、
    foodデータタイプの変数に代入しようとするとコンパイルエラーになるし、
    FlexBuilder使っていれば警告も出してくれるし、
    オブジェクト名からF3でクラスにさかのぼっていける)
  ・型のチェックは「if (オブジェクト is クラス)」でbooleanが返ってくるので確認できる

◆引数(コンストラクタアーギュメント)
  ・コンストラクタの引数でデフォルトを決めておきたいときは
   public VirtualPet(name="ken") { }としておけば、何も渡されなかった時にkenになる

◆this
  ・コンストラクタ内の「this」は「このオブジェクトの」という意味
   Public VirtualPet(name="ken") {
    this.petName = name;
   }なら、「今作ったこのオブジェクトのpetNameという変数にnameを代入」という意味になる
   これは、ActionScriptが勝手に
    var this = 今作ったオブジェクト;
   としてくれているので、自分でvar this = 今作ったオブジェクトと書かなくても大丈夫
  ・ActionScriptがかってに
   var this = 今作ったオブジェクト;をしてくれている

◆演算子
  ・「hoge = hoge + 100」は「hoge += 100」と同じ

◆継承
  ・乗り物という機能を継承して、車があるように、「継承」という概念がある
   乗り物に「人が乗って動かせる」という機能があるので、車は同じ機能を繰り返し書かなくても「乗り物」の機能は全て使える

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

Author:mochiko
前職は携帯コンテンツ会社のエンジニア、現在は独立系SIerで色々。
GenesisLightningTalksのお手伝いをしたり、気になる勉強会に参加したりしつつ、毎日本を読んで過ごしています。
どれだけ本を読んでいるのか、はライトニングトークの動画を見てもらえれば・・・。

テクノラティお気に入りに追加する
はてな
mixi
SlideShare
Ustream.TV
YouTube
Wassr

最近の記事
最近のコメント
最近のトラックバック
全記事表示リンク

全ての記事を表示する

月別アーカイブ
カテゴリー
mochikoAsTechCnt
ブログ内検索
RSSフィード