Javaプログラムのクラスの宣言とメインメソッド(関数)について簡単に解説しておきます。とはいうものの、まだしばらくは最低限の構成ですから、現在のところこう構成されているという説明になります。
まず、プログラムはクラスで構成されます。次の例では最初の1行でこのクラスの名前が Keisan であることを表しています。この名前はクラスの目指す使い方からするとあまりよい名前でないのですが、小さなプログラムではとりあえずこれでよいことにします。
public class Keisan {
public static void main( String[] args ) {
命令文1;
命令文2;
}
}
習慣に従いクラス名の先頭は大文字にします。
public は他のプログラムからの利用を許可するという意味ですが、しばらくはそのような必要はありません。なくても動きます。
赤で示した中括弧 { } がこのクラスの範囲を表しています。
さらに見た目に範囲をはっきりさせるため、範囲内の文をすべて字下げしてはっきりさせます。Javaはあくまで { } で判断しますから、これは人間のためです。
普通のプログラムではクラスの中にフィールド,コンストラクタ,メソッドなどたくさんのものが入って構成されます。しかし、しばらくは最も簡単に main という名前のメソッドがひとつだけあるという構成で作ります。
2行目は長いですが、中心となる単語は main です。
public class Keisan { public static void main( String[] args ) { 命令文1; 命令文2; } }
mainはプログラムが実行されるときここから開始されるという場所をしめすものですから、これ以外の名前にできません。
習慣に従いメソッド名は小文字にします。
mainはいつもこう書きますが一応説明すると、public は他のプログラムからの利用を許可するという意味,staticはクラスをインスタンス化しなくても利用できるという意味ですが,現段階では何のことかわかりませんね。mainは必ずstaticです。voidはメソッドが返す値の型ですが、mainは返す相手がいないので,このように書きます。これもmainは必ずvoidです。
( String[] args ) はパラメータ(引数)といって、メソッドが外部から受け取るデータの形式を表しています。mainはパラメータを使わなくても、いつもこう書きます。詳しくはあとで学びますが、String型の配列でデータを受け取りその配列の名前がargsであるということです。
赤で示した中括弧 { } がこのメソッドの範囲を表しています。
さらに見た目に範囲をはっきりさせるため、範囲内の文をすべて字下げしてはっきりさせます。Javaはあくまで { } で判断しますから、これは人間のためです。
class の前の public はなくても問題なくコンパイルでき、実行もできるが、mainの前の public がないと実行できないことを確認しなさい。
次のようにファイル名もクラス名も同じにして、書き換えてはコンパイルし、実行して確認する。全部の途中経過のファイルを残さなくてよい。
public class Test { public static void main( String[] args ) { System.out.println( "動いたよ" ); } }
class Test { public static void main( String[] args ) { System.out.println( "動いたよ" ); } }
public class Test { static void main( String[] args ) { System.out.println( "動いたよ" ); } }