- pp.370-
- mainメソッド
- mainメソッドはオブジェクトではない。(new演算子でインスタンス生成していない。オブジェクトに内蔵されていない独立した存在。)
- static メソッドは、プログラム実行開始の直前に1つだけ実体化され、プログラムが終了するまでそのまま存在し続ける。常に存在しているのでいつでも実行できる。これがstatic(静的な)の由来。
- mainメソッド
- pp.372-
- mainメソッドとクラス
- mainメソッドはどのクラスにでも書くことができる。ただし一度に実行できるのはJVMで指定した1つのみ。
- クラス毎の動作チェックなどに使われることが多い。(JUnit4のようなツールを使う場合は、専用のJavaファイルを用意することが多い)
- mainメソッドとクラス
- pp.375-
- 1つのJavaファイルに複数のクラスを記述可能。
- Q: 1つのJavaファイルに、クラス毎にstaticなmainメソッドを記述する(=1つのJavaファイルに2クラスあるなら、2つのmainメソッドを記述する)とどうなるだろう?
- 書かれたクラスの数だけclassファイルができる。
- public修飾子を付けたクラスがあれば、ソースファイル名はそのクラスを同じ名前にする必要がある。(publicなクラスが1つもないなら、ファイル名は自由)
- 1つのJavaファイルに複数のクラスを記述可能。
- pp.378-
- クラスとパッケージの関係
- Java言語では、クラスはパッケージに分けて作成する。1つのパッケージには関係のあるクラスだけを集めて、パッケージ全体で意味のある機能を実現するようにする。
- パッケージ内のクラスは互いに違う名前である必要がある。パッケージが異なれば、同じ名前のクラスがあっても良い。
- 名前衝突を回避するにはパッケージ名を指定する。
- 完全修飾名: パッケージ名.クラス名
java.util.ArrayList list = new java.util.ArrayList();
- import文: クラス名だけで指定可能。
import java.util.ArrayList
ArrayList = new ArrayList();
- 完全修飾名: パッケージ名.クラス名
- 名前衝突を回避するにはパッケージ名を指定する。
- クラスとパッケージの関係
- pp.380-
- 複数のimport文
- 「import java.util.*」として指定したパッケージ内のすべてのクラスをimport可能。ただしどのクラスをimportしてるのか分かりづらいため、個別に記述することを推奨。
- 複数のimport文
- pp.383-
- staticインポート
- クラスではなく、staticメソッド限定のインポート。
- ただし、可読性が落ちるため(急に自作メソッド名がコード中に現れると、そのメソッドがどのクラスに記述されてるのか分かりづらいため)、推奨しません。
- staticインポート