スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AS3.0 練習めも 6

ちょっと間空いてるけど、ゲームの合間を縫って少しずつ練習はしてるんです。
そんなわけでコンストラクタについて。

手元の資料によると、コンストラクタとはクラスのインスタンスを作る関数である、と。
それだけ言われても意味がわからないので、カカッとサンプルを写す。
丸写しだとアレなので変数名を変えてます。
どういうサンプルなのかというと、「インスタンスが作られる度にインスタンスプロパティnumiの値に通し番号を設定する。」ということです。

package {
   public class SampleClass2 {
    //クラスプロパティ
     public static var numc:uint = 0;
    //インスタンスプロパティ
    public var numi:uint;
     //コンストラクタ
     public function SampleClass2() {
       numi = ++numc;
     }
   }
}

そういえば基本的なことだけどこれ書いたとき初めて初めて知ったんだが、
コンストラクタの『numi = ++numc』の部分だけど、
++はただの「1足しますよ」ってことだと思ってたが、変数の前につける場合と後につける場合と効果が違うんだってね。
a++のようにした場合には、式を実行した後にaに1を足す、++aのようにした場合には式を実行する前に1を足す。
まあそんだけなんだけど。一応メモっとく。

さっそくこのクラスを使ってみよう。
インスタンスが作られる度にnumiが増えていることを確認するソースを手元の資料から写す。

flaファイルのメインフレームに

var smpObj1:SampleClass2 = new SampleClass2();
var smpObj2:SampleClass2 = new SampleClass2();
var smpObj3:SampleClass2 = new SampleClass2();
trace(smpObj1.numi,smpObj2.numi,smpObj3.numi);

と書いて実行。

実行すると1 2 3と出力され、インスタンスが作られる度にnumiが加算されていることが分かる。
ちなみに、さっきの++を前に置くか後ろに置くかの話つながりで、コンストラクタの中身を
numi = numc++;
とすると0 1 2と出力されます。

このサンプルから察するに、コンストラクタとはごく単純に考えると、
「インスタンスが作られると同時に実行される関数」って感じだろうかね。
まあ使っていくうちになんか見えてくるだろう。
関連記事
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

oisu-

Author:oisu-
趣味はゲームと深夜アニメ実況。
絵を描いたりFlashゲーを作ったりもするけど、一つのことにのめり込むと他のことがおざなりになるので結局あまり成果が出ない。その上根気が続かないのですぐ飽きる人。

pixivb

FC2カウンター
検索フォーム
カレンダー
01 | 2017/03 | 02
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
円卓の生徒
円卓の生徒応援バナー

XBOX360用ダンジョンRPG『円卓の生徒』を全力で支援中!
Twitter

Twitter Updates

    follow me on Twitter
    広告
    円卓の生徒応援バナー


    ここからアフィ注意
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。