本章は以下の4つ
- Javaの概要
- Java環境とJDK
- コマンドラインでのJavaプログラムのコンパイルと実行
- パッケージ宣言とインポート
Javaの概要
- オブジェクト指向言語である
- コンパイルした後のバイトコードはJVM(Javaが提供する仮想マシン)上で動作する →どんなOSでも動作する
Java環境とJDK
- Javaアプリケーションの実行にはJVMとクラスライブラリなども必要。 →それらを含んだ実行環境をJRE(Java実行環境)とよぶ
- Java開発に必要な環境がまとまったものをJDK(Java開発環境)と呼び、JREも含む
コマンドラインでのJavaプログラムのコンパイルと実行
-
エディタなどで作成した.javaファイルをソースコードやソースプログラムなどと呼ぶ
-
コンパイルにはjavacコマンドを使用する (拡張子付きで指定する)
javac (ソースファイル名).java -
コンパイルに成功すると.classファイル(バイトコード)ができる。 コンパイルエラーが発生するとエラーメッセージが表示される
-
javaコマンドでクラスファイルを指定することでプログラムを実行できる (拡張子はつけない)
java (クラス名)
ソースファイル作成で大事なところ
- main()メソッドは必ず
publicstaticvoid(返り値を持たない) のキーワードを指定し、mainという名前にする。 また、引数にString型の配列String[] aを受け取る必要がある。(可変長引数String... bも可) - ソースファイルモードでの直接実行
java (ソースファイル名).java
パッケージ宣言とインポート
パッケージはクラスを管理する仕組み。主なメリットは
- クラスの整理・分類(ソースファイルではなくクラスファイル)
- クラス名の衝突を避ける(名前空間の提供)
- アクセス制御 パッケージ化(格納すること)にはpackageキーワードを使用する
package パッケージ名;
- ソースファイルの1行目に書く(1ファイルに1つ)
- サブパッケージを書くときは.(ドット)で区切るe.g.
com.example.main(企業とかだと会社のドメインを逆に書くのがお作法らしい) コンパイルされたパッケージクラスには完全修飾名で実行するjava com.example.main
パッケージ化されたクラスのコンパイル・実行
- javacの-dオプションを使えばパッケージのディレクトリがないときにパッケージと同じディレクトリ構成を生成してくれる
javac -d パッケージを生成するディレクトリ コンパイル対象のソースファイル名
-cp-classpathオプションを使用することでクラスを検索するパスを指定できる。
インポート
import 完全修飾名;
- ソースファイルの先頭に記述する(パッケージ宣言の次)
- パッケージ全体をインポートするときは
*を指定(クラス名の省略のみ可能,末尾だけ) - インポートしていないクラスを使用する時は完全修飾名で指定
標準API
- java.lang(自動インポート) →基本的なクラスを提供(StringやObjectなど)
- java.io → 入出力機能(PrintStreamやWriter,Readerなど)
- Java.util → 便利機能(コレクションフレームワークなど)
- java.util.function →関数型インターフェース(FunctiionやConsumerなど)