初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
基本2
基本1ではjavaの基本的なコードの書き方を学びました。
では、ここではあまりjavaの入門書では紹介されていないかも知れないことを書きます。
以下のコードを見てください。
サンプルプログラム(Sample2.java)
class Sample2{
static public void main (String test[]){
System.out.println("JavaSample2");
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
Sample2.javaのコードを見てください!
mainメソッドの記述の仕方を変えてみました。
Sample2.javaをコンパイルするとどうなるでしょうか?
正解は正常にコンパイルされ、実行されます
ほとんどのjavaのmainメソッドの記述の仕方は、public static void main(String args[]){}
もしくは、public static void main(args[] String){}ではないでしょうか?
でも、Sample2.javaのように、pubilic を staticの後に記述しても、args[]をほかの任意の 文字に置き換えても、特に問題はありません。
これから、SJC-Pの試験を受けられる方は知っておいたほうがいいです。では、Sample2.javaをコンパイルしてみましょう。
では、次のコードはどうでしょうか? 今度は、
ソースファイル名とクラス名を変えてみました。
サンプルプログラム(Sample3.java)
class Test{
public static void main (String args[]){
System.out.println("Sample3");
} }
プログラムをコピーする場合すべて選択をクリックしてください。
Sponsored link
Sample3.javaをコンパイルして実行するとどうなるでしょうか?
結論から言いますが、コンパイルは正常に成功します。
でも、今までのようにjava Sample3で実行すると例外が発生します
(例外については、例外のところで話します)
しかし、Sample3.javaをjava Test として実行すると成功することができます。
それは、実はjavac でコンパイルすることによって人間が記述したソースファイル(ここでは、Sample3.java)をjava実行環境であるJVMが理解できる言葉に変換してくれます。
その変換された、ファイルのことをクラスファイルといいます
コンパイルに成功することにより、
新たに拡張子.classがついたファイルが自動的に生成されます。
つまり、Sample3.javaのコードではSample3.javaをコンパイルすることによってTest.classが生成されます
だから、Sample3で実行したときに、そんなクラスは存在しませんという例外が発生します。
このことでも、わかるようにソースファイルとメインのクラス名はけして同じにしてやる必要はないのですが、
混乱を防ぐためにも同じ名前にしておく必要があると思います。
では、コンパイル、実行してみましょう。
java Testでコンパイルできました。