クラス定義

クラス定義の基本形

まずは,以下のクラスファイルの基本形を覚えておきましょう. GivenClassName は与えられたクラス名に置き換えてください. run メソッド内に指定されたプログラムを書いてください. main メソッドは返り値の型の前にpublic staticというキーワードがついていますが,これらのキーワードは今のところは mainのみにつけるものと思ってください.

public class GivenClassName{
  void run(){
    // ここに課題内容のプログラムを書く.
  }
  public static void main(String[] args){
    GivenClassName application = new GivenClassName();
    application.run();
  }
}

ここで注目してもらいたいのは,6行目,GivenClassName application = new GivenClassName();と, 7行目のapplication.run(); です.

6行目のnew GivenClassName()GivenClassName という型の実体を作成し, GivenClassName 型の変数application に代入しています. そして,7行目のapplication.run() は,変数application に対して, run メソッドを呼び出しています.

C言語とは異なり,Java言語では,メソッドはどこかの型の実体に必ず所属しています. そのため,メソッドを呼び出すときは,どの実体に対して呼び出すのかを明示しなくてはいけません.

なお,publicについては,FAQ可視性とは何ですかを参照してください.

new演算子

先ほど,new で実体を作成したと言いました. 次のプログラムは今まで書いてきたプログラムの例です.

Integer value1 = 3;
Integer value2 = 5;
Integer result = value1 + value2;
System.out.println(result);

実は,このプログラムは,様々なものが省略されています.省略せずに書くと,次のようなプログラムになります.

Integer value1 = new Integer(3);
Integer value2 = new Integer(5);
Integer result = new Integer(value1 + value2);
System.out.println(result);

このように,実は,実体を作成して変数に代入しています. Java言語では,ほぼ全てこのように実体を作成しなければ変数に代入できないことを覚えておいてください.

実体を作成するには,基本的には new演算子を利用し,new 型名とします. しかし,Integer型は,Java 9 からはnew演算子での実体の作成が非推奨となりました(コンパイル時に警告が出るようになります). 代わりに Integer.valueOfメソッドを利用します. 上記のプログラムは,以下のように書き換えることで,将来的にも利用できるプログラムとなります.

Integer value1 = Integer.valueOf(3);
Integer value2 = Integer.valueOf(5);
Integer result = Integer.valueOf(value1 + value2);
System.out.println(result);