public class Test{ int num; private static void sub(){ static num++; System.out.println(num); } public static void main(String[] args){ Test.sub(); Test.sub(); } }
mainメソッドのTest.sub()はインスタンスを作らずに処理されています。
これは、インスタンスではなくTestクラスのメソッドが実行されている認識ですが、合っていますでしょうか?
または、このTest.sub()で暗黙的にインスタンスを作っているということはありますか?
さらに、Test.sub()が処理されることによって、Testクラスのnumが2回インクリメントされるので、この後Testクラスのインスタンスを作った場合、numの初期値は2となることで認識は合っていますでしょうか?
これコンパイルとおりますか?
コメントいただきありがとうございます。
現在開発環境がないため、コンパイルの確認はしていません。
ただ、本にあるPGMを書き換えて記載しているので、構文として誤りはないと思います。
一部、PGM内に誤字があったため修正しました。
?まだコンパイルエラーがでるようにみえる
4行目にセミコロンを付けました。まだありますかね、、、
回答者ならまだしも、質問者は コンパイルはしましょう
実行したらどうなるか尋ねる前に、実際に動かしてみるようにしてください。
すみません。現在開発環境がなく、コンパイルはしておりません。
無料のIDEはいくつもあり、Web上の環境で良ければスマートフォンやタブレットでも実行可能です。
開発環境が無いのは分かりましたが、それならばなぜ用意しないのですか。
プログラミングは動かしてなんぼです。