- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaの質問です。その2)
JavaのBronze試験での初期化に関する疑問
このQ&Aのポイント
- JavaのBronze試験についての質問です。明日試験を受ける予定ですが、初期化に関して困っています。
- 問題の中でint valと宣言しているにもかかわらず、なぜ++valで1になるのか理解できません。
- 明日の試験が心配で困っています。初期化についてどなたかご教示いただけないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
プリミティブ型(intやbyte、float等)はオブジェクト型と異なり、nullは入りません。 そして、プリミティブ型はローカル変数とフィールド変数で初期値が異なります。 これはプリミティブ型のintでフィールド変数なので、明示的な初期化を行わなかった場合0になります。 ++valが呼ばれると、return前にval=1+0が実行されるので、obj.methodA()の戻り値は1です。
その他の回答 (1)
- maiko0318
- ベストアンサー率21% (1483/6969)
回答No.1
staticローカル変数は最初にメソッドが呼ばれた時には0あるいは 相当する値(文字タイプならNULL)です。
質問者
お礼
ありがとうございます。 そういう意味だったのですか。。。 聞いてよかったです。 あと無事に合格していました。
お礼
ありがとうございます。 int型にはnullって入らないんですね。 >プリミティブ型はローカル変数とフィールド変数で初期値が異なります。 初めて知りました。 聞いてよかったです。 あと無事に合格していました。