• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaの質問です。その2)

JavaのBronze試験での初期化に関する疑問

このQ&Aのポイント
  • JavaのBronze試験についての質問です。明日試験を受ける予定ですが、初期化に関して困っています。
  • 問題の中でint valと宣言しているにもかかわらず、なぜ++valで1になるのか理解できません。
  • 明日の試験が心配で困っています。初期化についてどなたかご教示いただけないでしょうか。

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

  • ベストアンサー
  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

プリミティブ型(intやbyte、float等)はオブジェクト型と異なり、nullは入りません。 そして、プリミティブ型はローカル変数とフィールド変数で初期値が異なります。 これはプリミティブ型のintでフィールド変数なので、明示的な初期化を行わなかった場合0になります。 ++valが呼ばれると、return前にval=1+0が実行されるので、obj.methodA()の戻り値は1です。

noname#180736
質問者

お礼

ありがとうございます。 int型にはnullって入らないんですね。 >プリミティブ型はローカル変数とフィールド変数で初期値が異なります。 初めて知りました。 聞いてよかったです。 あと無事に合格していました。

その他の回答 (1)

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

staticローカル変数は最初にメソッドが呼ばれた時には0あるいは 相当する値(文字タイプならNULL)です。

noname#180736
質問者

お礼

ありがとうございます。 そういう意味だったのですか。。。 聞いてよかったです。 あと無事に合格していました。