2017-04-11 18 views
0

Javaでは、メソッドの静的変数および変数が複数インスタンス化されている場合クラスを複数インスタンス化する。Javaでは、メソッド、静的変数およびクラスの変数が複数インスタンス化されている場合複数クラスをインスタンス化する場合

class Person { 
    private String name; 
    public static int age; 

    public void getName() { 
     return name; 
    } 

    public static void getAge() { 
     return age; 
    } 
} 

インスタンスクラス "Persion" 3回:

Persion p1 = new persion(); 
Persion p2 = new persion(); 
Persion p3 = new persion(); 

あれば、変数 "名"、 "年齢" と機能 "のgetName()"、 "例の場合

getAge "は3回インスタンスされますか?

+1

間もなく、すべてのメンバーがインスタンス化されます。 –

答えて

1

は、変数「名」、「年齢」と機能「のgetName()」です、「getAge()は、」3回?

をインスタンス化されます
  1. nameので、それはインスタンス化三度で、staticではありません。
  2. agestaticであるため、は3回実施されていませんです。
  3. getName()

static基本的に、それはそのクラスのすべてのオブジェクトを横切る同じであることを意味し、またすべてのオブジェクトの

  • getAge()static従って同じである各オブジェクトに対して別個あります。

  • 0

    静的変数は一度だけ定義されます。staticキーワードは、オブジェクトに属していないクラスを意味します。

    変数namestaticではないため、オブジェクトの作成時に初期化されます。あなたは3つのPersonオブジェクトを作成する場合

    だから、あなたはあなたのPersonオブジェクトのそれぞれについて、3つのname変数(そして唯一のage静的変数を持つことになります。

    0

    をJavaでstatic変数のみstatic方法で一度同じ一つのメモリアドレスを取得しますあなたは多くのPersionのコピーを作成する場合でも、一つだけのメモリが格納されている

    関連する問題