2012-04-12 11 views
0

今、単純なグラフィックプログラムを印刷しています。 私はm_ballという配列を持っています。配列内のオブジェクトの名前を付けて初期化する

ここで、m_ballはBallクラスのインスタンスを20個まで含むことができます。

Rigth今私は

 Ball m_activeBall0 = new Ball(); 
     Ball m_activeBall1 = new Ball(); 
     Ball m_activeBall2 = new Ball(); 
ect... 
     m_ball[1] = m_activeBall0; 
     m_ball[2] = m_activeBall1; 
     m_ball[3] = m_activeBall2; 
ect... 

は今もすべての音のthatsと=次のコードでこれを行います。 しかしforループでそれを行うのは簡単です。 このようなもの=

 for(int i = 0; i <m_ball.length;i++) { 
      Ball m_activeBall[i] = new Ball(); 
      m_ball[i] = m_activeBall[i]; 
     } 

または私はそれを紛失しましたか?

私は単にこれを行う方法を見つけることができないようです。

私はGoogleを試しましたが、答えが見つからないようです。

ああそうです。追加するのを忘れました。そのJava。

+0

どのような言語ですか? C++? Java? – hmjd

+0

よろしくお願いします。そのJava。 – JavaApprentis

+0

ようこそスタックオーバーフロー。できるだけ多くの人があなたの質問を閲覧できるように、プログラミング言語で質問にタグを付けるようにしてください(私はこれを今やっています)。再度 – hmjd

答えて

1
Ball[] m_ball = new Ball[20]; 

for(int i = 0; i < m_ball.Length; i++) 
{ 
    m_ball[i] = new Ball(); 
} 

私はこれをC#で書いていますが、私はそれがJavaとほぼ同じだと確信しています。乾杯。 :)

+0

、ありがとう。 ivはこの回答を受け入れることを選択しました。 – JavaApprentis

2

あなただけArrays.copyOf()に言及しforループ,:

for (int i = 0; i < m_ball.length; i++) 
{ 
    m_activeBall[i] = new Ball(); 
    m_ball[i]  = m_activeBall[i]; 
} 

を使用することができます。他の場所にm_activeBallが作成されている場合は、コピーを作成することができます。

Ball[] copy = Arrays.copyOf(m_activeBall, m_activeBall.length); 
+0

Thx man。あなたは私の一日を救った。 今の魅力のように動作します。どうして私は私のループを別の方法でしたかったのか分かりません:) 私はどうしたらよいかわかりません。 – JavaApprentis

+0

あなたはおそらくupvoteできませんが、10分後に答えを受け入れるだけです(答えの横にあるチェックマークをクリックしてください)。しかし、それが問題を解決し、最も有用な答えであった場合にのみそれをクリックしてください。待って、他の人がもっと便利なものを投稿するかどうかを確認してください。 – hmjd

関連する問題