class Test{
public static void main(String args[]){
ObjectVector vect = new ObjectVector();
vect.at(0, "HogeHoge");
vect.at(1, new Test());
String str1 = (String)vect.at(0);
String str2 = (String)vect.at(1);
}
}
このサンプルプログラムで、「Testクラスのインスタンス」がObjectVectorに入っているのですが、Testクラスはmain()を含んでいるのでmainの中に、mainを含んでいる場合の動作が分かりません。教えてください。
No.1ベストアンサー
- 回答日時:
public static void main(String[] args)
という宣言から分かるように、Testクラスのメソッドmainは静的なメソッドです。静的なメソッドは、JavaVM上で一つしか存在しません(インスタンスメソッドでもJavaVM上には一つしか存在しませんが)。なので、ObjectVectorクラスの中でインスタンス化しているTestクラスのインスタンスがそれぞれmainを持っている訳ではないので、Testクラスをいくらインスタンス化しても影響はありません。
仮に静的メソッドではなくインスタンスメソッドだったとしても、ObjectVectorクラスの中でインスタンス化したTestクラスのmainメソッドを呼び出さない限りは何も起こりません。
mainメソッドは、あくまでJavaVMから起動される時に最初に実行されるもので(コマンドラインから java Test という風にクラス名を指定する事でJavaVMがTest#main()を実行します)、それ以外は単なる静的メソッドがあるだけと何も変わりません。mainはスタートアップメソッドに「なる事ができる」だけであって、mainメソッドが含まれるクラスをインスタンス化しただけで自動的にmainが呼ばれる訳ではありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java final 1 2022/06/10 22:49
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java eclipse実行ができない 2 2022/07/27 04:47
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコード件数の表示
-
Java初級 引数に適用できません
-
abstract と static を一緒に付...
-
readLine()ではじめから読み直...
-
C言語での文字列より値を抜き出す
-
Google Apps Script で getRang...
-
public static void main (Stri...
-
Java 「参照型の型変換」について
-
クラスを継承した際のコード自...
-
C# 点の描き方をおしえてくだ...
-
Fileの読み取り専用の解除
-
ArrayList の継承について(初...
-
[クラス名].[メソッド名].[メソ...
-
C# でメソッドに送られてきたOb...
-
StringBufferからStringへキャ...
-
String.containsの反対機能はあ...
-
変数とフィールドの使い分け
-
System.out.print
-
Path型またはString型をURL型に...
-
別クラスのmainメソッドの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
String.containsの反対機能はあ...
-
なぜprotected overrideなのか
-
Strutsでチェックボックスの値...
-
Google Apps Script で getRang...
-
abstract と static を一緒に付...
-
C# 点の描き方をおしえてくだ...
-
レコード件数の表示
-
public static void main (Stri...
-
StringBufferからStringへキャ...
-
YYYYMMDD書式の日付に対する適...
-
C# でメソッドに送られてきたOb...
-
シェルスクリプトからのJavaメ...
-
C# の ByVal と ByRef について
-
Fileの読み取り専用の解除
-
CSVから読み込んだデータの保持...
-
メソッドの引数に指定されてい...
-
javaに"search"という関数 or ...
-
Javaのメモリの管理
-
Java初心者です、エラーの意味...
おすすめ情報