(Java の専門家の皆さんには) おそらくばかげていると思われる簡単な質問がありますが、基本的な「メイン メソッド」の構文と、それが異なるように見える理由を理解するのに苦労しています。
最初にちょっとしたバックグラウンド: 私はいくつかの基本的な Java コースを受講しており、他の言語 (VBA、Python など) でプログラミングを行ったことがあるため、かなり早く習得することができました。
とにかく、「主な方法」については、このコースでは以下を使用します。
public void run() {
// do whatever we were discussing
}
ただし、私が使用しているコンパイラ (www.compileonline.com、そして最近では JGrasp) は、明らかにこれしか認識しません。
public static void main(String args[]) {
// code goes here.
}
これで基本的な理解 (「public」、「void」、さらには「static」の意味) はわかりましたが、なぜコースのレッスンで run() を使用し、コンパイラーがそうでないと言うのか理解できません。コンパイラが "main" メソッドを静的 (定数またはクラス変数のように) にし、args と呼ばれる文字列を使用することを要求するのは興味深いことです。この文字列を使用したことはありませんが、何らかの理由で必要なようです。
同様に、私が学んでいるコースでは単純な「println」を使用していますが、コンパイラには「System.out.println」が必要です...同じ状況の一部だと思っているので、それについて言及する必要があると思いました.
とにかく、誰かがここで何が起こっているのか知っていますか? コンパイラが必要とするテキストをコースのコードにコピー/貼り付けて同様の結果を得るのは簡単なので、大したことではありませんが、なぜそうなのかを実際に知ることは素晴らしいことです (私はこの種のコピー/貼り付け戦略は、将来「バグ」につながる可能性があります)。私がすぐに思いつくことができる唯一のことは、特定の機能を大幅に変更し、下位互換性がないJavaの更新があった可能性があるということですか? とにかく、事前にご意見をお寄せいただきありがとうございます。: )