※ ChatGPTを利用し、要約された質問です(原文:mainメソッドに関して)
mainメソッドの仕様について
このQ&Aのポイント
mainメソッドはデフォルトでもよい理由について悩んでいます。
Hello.javaとHL.classの関係についても不思議に思っています。
tnk.classのメソッドを呼び出すためにはpublicである必要があることは分かっていますが、なぜmainメソッドはデフォルトでもよいのか疑問です。
こんばんは。宜しくお願いします。
例えば2つのファイルhello.javaとtnk.javaがあった
とき
hello.java⇒HL.class(デフォルト)、mainメソッド(1)
tnk.java⇒tnk.class(public)(2)
の構成をとっているとします。
このHL.classのmainメソッドから、tnk.classの何か
メソッド(public)を呼んで実行するとします。
このときに、tnk.classはHL.classとは別ファイルです
からpublicでなくてはいけないのは分かります。
ですが、始まりであるmainメソッドを持つクラスは
デフォルトでもよいのはどうしてなのか悩んで
います。
(因みに、hello.javaのHL.classをHello.javaとして
コンパイル・実行すると、wrong nameとエラーが出、
hello.javaのmainメソッドを持つクラスを一端
public class hello としてコンパイル・実行して
やらないと、(1)に戻しても正常に実行できなくなる
のも不思議です)
仕様と言ってしまったらそうかもしれませんが、
ご存知の方がおりましたら、ご教授くださいますよう
お願いします。
お礼
osumitan 解答ありがとうございます。 実は、この質問は削除依頼を出して いたのですが、通らなかったようで。。 お手数をお掛けしました。