Chap08 クラス定義: 2009年11月アーカイブ

「Section08-01 クラス定義の構造」の「クラスメンバーを定義する」(p.245)にサンプルを追加します。このサンプルのポイントは、コンストラクタにおいてクラスプロパティfriendListにインスタンスの参照であるthisを登録することで、作ったインスタンスを管理しているところです。

[:script:]Friend4クラスの定義
package {
  public class Friend4 {
    //クラスプロパティ
    public static var seqNo:uint;
    public static var friendList:Array=new Array();
    //インスタンスプロパティ
    public var no:uint;
    public var name:String;
    public var age:uint;
    //コンストラクタ
    public function Friend4(na:String,ag:uint) {
      no= ++seqNo;
      name=na;
      age=ag;
      //インスタンスのリストに参照を保管する
      friendList.push(this);
    }
    //
    // クラスメソッド
    //
    //平均年齢を求める
    public static function getAgeAverage():Number {
      if (friendList.length==0) {
        return 0;
      } else {
        var ageSum:uint;
        //年齢の合計を出す
        for (var i:int=0; i<friendList.length; i++) {
          var friend:Friend4=friendList[i];
          ageSum+=friend.age;
        }
        //平均を計算する
        var ave:Number=ageSum/friendList.length;
        //小数点2位で四捨五入する
        ave=Math.round(ave*10)/10;
        return ave;
      }
    }
    //最年長を求める
    public static function getOldestProfile():String {
      if (friendList.length==0) {
        return null;
      } else {
        //friendListの複製
        var tmpList:Array=friendList.slice();
        //年齢でソートする
        tmpList.sortOn("age",Array.NUMERIC);
        //最後の人を取り出す
        var oldest:Friend4=tmpList[tmpList.length-1];
        //プロフィールを返す(インスタンスメソッドの実行)
        return oldest.getProfile();
      }
    }
    //
    // インスタンスメソッド
    //
    //プロフィールを返す
    public function getProfile():String {
      var info:String="no."+no+" "+name+"、"+age+"歳です。";
      return info;
    }
  }
}
ファイル一式をダウンロードする
まったく新しいAS3の世界!
694a.jpg
Adobe Flash CS4
詳細!ActionScript3.0入門ノート[完全改訂版](CD-ROM付)

楽しいActionScript。
新たなる1歩へと踏み出しましょう。
■内容は?→ 目次を見る
■評判は?→ 書評を読む
この本を書いたわけ

このアーカイブについて

このページには、2009年11月以降に書かれたブログ記事のうちChap08 クラス定義カテゴリに属しているものが含まれています。

前のアーカイブはChap08 クラス定義: 2009年9月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ