Java学習中の者です。お答え頂いたら本当に助かります。。

Java学習中の者です。お答え頂いたら本当に助かります。。 class A { int x; int y; int z = x + y; } class B { public static void main(String[] args){ A a = new A(); a.x = 3; a.y = 2; System.out.println("値は" + a.z + "です"); } } コンソールに通すと、"値は0です"と表示されます。 私は"値は5です" と出力されるだろうと思って書いていたので・・・ どこがおかしいのでしょうか? どなたか教えてください。。

Java192閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

A a = new A();が実行されると、 クラスAの int x; int y; int z = x + y; が全て実行されます。 x、yは0で初期化され、それらの合計がzに格納されるので、z = 0です。 a.x = 3;が実行されると、x = 3となります。 a.y = 2;が実行されると、y = 2となります。 System.out.println("値は" + a.z + "です");が実行されると、 a.zの値を取得します。 zの値は0ですから、「値は0です」と出力されます。 「値は5です」と出力させたいのなら、以下のような変更が必要です。 class A { int x; int y; z() { return x + y; } } class B { public static void main(String[] args){ A a = new A(); a.x = 3; a.y = 2; System.out.println("値は" + a.z() + "です"); } }

ThanksImg質問者からのお礼コメント

回答ありがとうございました^^ とても分かりやすかったですー また機会ありましたら、知恵をお貸しください(^^;)

お礼日時:2011/9/13 23:20