Skip to content

Latest commit

 

History

History
37 lines (34 loc) · 2.95 KB

Java_additional_syntax.md

File metadata and controls

37 lines (34 loc) · 2.95 KB

文法の補足(16章)

mainメソッドの位置づけ(16.1節)

  • pp.370-
    • mainメソッド
      • mainメソッドはオブジェクトではない。(new演算子でインスタンス生成していない。オブジェクトに内蔵されていない独立した存在。)
      • static メソッドは、プログラム実行開始の直前に1つだけ実体化され、プログラムが終了するまでそのまま存在し続ける。常に存在しているのでいつでも実行できる。これがstatic(静的な)の由来。
  • pp.372-
    • mainメソッドとクラス
      • mainメソッドはどのクラスにでも書くことができる。ただし一度に実行できるのはJVMで指定した1つのみ。
      • クラス毎の動作チェックなどに使われることが多い。(JUnit4のようなツールを使う場合は、専用のJavaファイルを用意することが多い)

複数のクラスを含むJavaファイル(16.2節)

  • pp.375-
    • 1つのJavaファイルに複数のクラスを記述可能。
      • Q: 1つのJavaファイルに、クラス毎にstaticなmainメソッドを記述する(=1つのJavaファイルに2クラスあるなら、2つのmainメソッドを記述する)とどうなるだろう?
    • 書かれたクラスの数だけclassファイルができる。
    • public修飾子を付けたクラスがあれば、ソースファイル名はそのクラスを同じ名前にする必要がある。(publicなクラスが1つもないなら、ファイル名は自由)

インポート文(16.3節)

  • 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してるのか分かりづらいため、個別に記述することを推奨。
  • pp.383-
    • staticインポート
      • クラスではなく、staticメソッド限定のインポート。
      • ただし、可読性が落ちるため(急に自作メソッド名がコード中に現れると、そのメソッドがどのクラスに記述されてるのか分かりづらいため)、推奨しません