はじめに
Javaを学ぶにあたって、APIとライブラリ、パッケージについて改めて整理しました。
APIとライブラリ
| 用語 | 説明 |
|---|---|
| API(Application Programming Interface) | 機能をまとめて、他のプログラムから呼び出せるようにした部品で、ソフトウェア同士がやり取りするための窓口(インターフェース)。 |
| ライブラリ | さまざまなAPIをまとめたもの |
| クラスライブラリ | JavaのAPIはクラス単位にまとめられているため、Java標準APIはこう呼ばれる |
イメージ図

ライブラリといわれるAPIの図書館のようなところに、色々なクラスAPIが用意されている。
APIって結局何?
- 広義 → パッケージ〜クラス〜メソッドすべてを含めた「API」
- 狭義 → 個々のメソッドだけを指して「API」
→ 「呼び出して使える機能のまとまりで、やりとりの窓口」と理解しておけばOK
APIの例
java.time パッケージの3つのクラス(時間系に分類されるクラス型のAPI)で、日付・時刻・日時をそれぞれ取得できます。
jshell> java.time.LocalDate.now()
$1 ==> 2021-06-18 // 日付を取得
jshell> java.time.LocalTime.now()
$2 ==> 03:03:47.573638100 // 時刻を取得
jshell> java.time.LocalDateTime.now()
$3 ==> 2021-06-18T03:47:52.451100900 // 日時を取得
パッケージとimport
APIを使う際には、java.time.LocalDateTimeのようにパッケージ、クラス、メソッドとつらつら書かないといけないが、importを使うとパッケージ部分は書かなくてもよくなります。
jshell> import java.time.* // java.time 以下のクラスをまとめてimport
jshell> LocalDateTime.now()
$4 ==> 2021-06-18T02:03:55.971387
// importすれば、FQNなしでクラス名から呼び出せる
イメージ

本屋さんの本棚で、「料理」「資格」「旅行」など分類されているように、クラスAPIもライブラリの中で、パッケージでjava.lang、java.timeのように分類されている。