2010-12-19 4 views
0

コンストラクタ内か外かに変数を配置するかどうかを決定する必要がありますが、情報が欠落していると感じています。私は重要なことがあると感じる2つの違いを見つけました:コンストラクタ外の変数のインスタンス化との相違点

- 私は、コンストラクタ内の変数を配置することを決めた場合、私は変更したい関数のオブジェクトパラメータを持っている必要がありますたとえコードがクラスの内部にあったとしても、変数。

サブクラス化すると変数が表示されず、正しく動作するためには、クラスやサブクラスに変数が必要な場合に問題が発生します。

私はこれらすべての点で間違っているかもしれませんが、午前4時には、私は間違っていると言います。もしこれが他のどこかで答えられていて、私がそれを逃してしまったら、申し訳ありません、あなたがリンクを投稿できるなら、私は感謝します。コンストラクタの内部

答えて

0

行動は、彼らが働くので、他のすべてがプリコンパイルされ、解釈されるより速く

0

www0z0kはすでに言ったように、コンストラクタ外宣言の解釈merlyなので、いくつかの状況下でのパフォーマンスBOSTことができる外、それらを宣言します。

私は、コンストラクタ内の変数を置くことを決定-IF、その後私は、コードは、クラスの内部にある場合でも、変数を変更したい任意の関数のためのオブジェクトパラメータを持つ必要があります。

これは正しいです。

- サブクラス化すると変数が表示されず、正しく動作するためにはクラスやサブクラスに変数が必要な場合に問題が発生します。

あなたはアーカイブしたいものについて考えるべきです。たいていは、良いソフトウェア設計を選んで性能について考えるべきです。あなたが言及したこのサブクラス化の問題は、一部の変数が変更されるのを防ぐこともできます。

挨拶、変数が表示されないために原因となる

0

-Subclassing

iuiz、クラス、および任意の サブクラスが適切に動作する ために、変数を持っていなければならない場合 問題を引き起こす何か。私はあなたを理解している場合

正しくあなたは保護フィールド(またはプロパティ)を探しています。

私は、コンストラクタ内の変数を置くことを決定-IF、その後私は、コードは、クラスの内部であっても 場合、変数を変更したいすべての機能 ため オブジェクトパラメータを持っている必要があります。

SRY、私はそれを得ることはありません...

@Performance:あなたはすべてのあなたの行い、あなたのコンストラクタ内で簡単なのinit(...)機能を追加することができます解釈コンストラクタについて言ったことすべてとをコンストラクタで行いますが、解釈されることはありません。

public function ConstructorOfClass(arg1:int, arg2:*) 
{ 
    init(arg1, arg2); 
} 

private function init(arg1:int, arg2:*):void 
{ 
    // do whatever you want here 
} 
関連する問題