• ベストアンサー

panel.add(new Button("1"));という書き方について。

javaを学習している者です。 インスタンスを作成するには クラス名 変数名 = new クラス名(); というのが基本だと思うのですが、タイトルのような書き方(panel.add(new Button("1"))だと頭の中ではどのように考えればいいのでしょうか?変数名を持たないインスタンスを生成してパネルにのっけている、ということでしょうか?しかもこれがfor文で繰り返されていると for(int i = 0; i < 10; i++){ panel.add(new Button(Integer.toString(i))); } 余計にややこしくて分からなくなってしまいます。一応10個違うインスタンスをそれぞれ作っているのでしょうか? 本に載っていた書き方だし、エラーも出ないのでまず間違っていないのは分かるのですが、いまいちピンと来ないです・・・。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>一応10個違うインスタンスをそれぞれ作っているのでしょうか? そうですね。 変数はインスタンスを参照するビット列のアドレスを格納したのもといえます。 ボタンの場合などで 以後インスタンスを参照する必要がなければ変数はいらないといえます。リソースに問題なければよい訳です。 ループでは new の繰り返しはリソース消費が大きくなるので参照変数を利用するわけです。

rapun
質問者

お礼

回答ありがとうございます。 >以後インスタンスを参照する必要がなければ変数はいらないといえます。 なるほど。。。

その他の回答 (1)

noname#39970
noname#39970
回答No.1

後からbuttonの値として参照したり変更するのを容易にする場合は質問に書かれてある基本形を用いる。 OKボタンのように もう変えようがない場合や後から別の方法で取り出すように処理を行っている場合は いきなり組み込むという手法として用いられる 一旦変数に格納してからpanel.addするのではなく変数に格納をすっ飛ばしてるだけ。

rapun
質問者

お礼

回答ありがとうございます。 後でその変数を使って参照したいときは変数に入れる、ということですね。

関連するQ&A