Javaには開発を行うために便利な標準APIがたくさん用意されています。
そこで、この記事ではよく使用するAPIや便利なAPIなどについて解説いたします。
【基礎】Javaのリファレンスとは
【基礎】JavaのAPIとは
【基礎】JavaのAPIドキュメントの読み方
【発展】代表的なインタフェースの解説
【発展】代表的なクラスの解説
【発展】その他の便利なAPI
【発展】旧バージョンのAPI
JavaのAPIドキュメントは情報量が膨大で、書いてあることもなんだか難しそうで、慣れないと戸惑ってしまうかもしれません。
しかし、APIをうまく使いこなすことがJavaプログラマとして上達するための近道となります。
ここではそんなJavaの標準APIについて詳しく解説していきます!
なお、Javaの記事については、こちらにまとめています。
Javaのリファレンスとは
Javaのリファレンスとは、オラクル社が公開しているJavaを開発するために必要な情報が書かれているドキュメントのことを言います。
Javaのリファレンスは、Javaをインストールして開発を行うための情報や、Javaの仕様、プログラミングをするために必要なパッケージやクラスなどの情報について網羅されている公式のリファレンスのことを指します。
以下ではドキュメントを「基本」「少し詳しい人向け」「ツール関係」と分けてそれぞれ簡単に解説いたします。
初心者の方には難しい内容も含まれていますので、今の段階ではこのようなドキュメントがあるということを頭の片隅にでも留めておいていただければと思います。
基本ドキュメント
・Java SE APIドキュメント
Java SE(Java Platform, Standard Edition)及びJDK(Java Development Kit )に関するドキュメントの一覧があるページです。過去のバージョンを遡って閲覧することもできます。
・開発者ガイド
Java SE及びJDKで開発するために必要な情報が網羅されています。
少し詳しい人向けのドキュメント
・JavaFX APIドキュメント
Java仮想マシンで動作するGUIライブラリのAPIドキュメントです。
・Java言語および仮想マシン仕様
Java言語および仮想マシンについての仕様が網羅されているドキュメントです。全て英文です。
ツール関係のドキュメント
・Java SEツール・リファレンス(UNIX)
UNIXでJava Platform, Standard Editionのツールを使用するためのリファレンスです。
・Java SEツール・リファレンス(Windows)
WindowsでJava Platform, Standard Editionのツールを使用するためのリファレンスです。
JavaのAPIとは
JavaのAPI(Application Programming Interface )は、Javaでアプリケーションを作成するために必要となる標準機能を提供するインタフェースのことです。
APIについては以下の記事で詳しく解説していますので、ぜひ参考にしてください!
Javaには多数の機能が提供されており、Javaの機能を有効に使うためにはAPIの使用が必須となります。
開発者はJavaのルールに従ってAPIを使用することにより、自分で1から実装することなく用意されたAPIを使用することで効率よく開発することができます。
例えば、以下のようにコンソールに文字列を出力するおなじみの処理も、Javaが提供しているAPIを使用しています。
System.out.println("Hello World");
これは、Systemクラスのoutというクラスフィールドを取得し、outクラスフィールドで使用できるprintlnメソッドを呼出して、引数で指定された変数や文字列を出力するJavaのAPIです。
JavaのAPIドキュメントの読み方を知ろう
ここではJavaのAPIドキュメントの読み方について見ていきましょう。
javaの最新バージョンであるJava 8のAPIは以下より確認できます。
https://docs.oracle.com/javase/jp/8/docs/api/
APIのリファレンスにアクセスしてみると、画面が3分割されていて、左上にパッケージ、左下にはクラスのリンクがそれぞれ記載されています。
Java(tm) Platform, Standard Edition 8
APIの種類について知ろう
Javaはパッケージを指定することで、そのパッケージに含まれる機能を使用してプログラミングを行います。
パッケージとはJavaの名前空間にあるクラスやインタフェースをまとめた機能です。
クラスやインタフェースにはさらに固有の機能を使うためのメソッドが用意されています。
JavaのAPIでは、
・パッケージ
・パッケージで使用するクラス・インタフェース
・クラス・インタフェースで使用するメソッド
などがそれぞれグループごとにまとめられています。
Javaなどのオブジェクト指向言語では、パッケージやクラス・インタフェース、メソッドなどをそれぞれモノ(オブジェクト)として表現されます。
オブジェクト指向については以下の記事でも詳しく解説していますので、ぜひ参考にしてください!
クラスの説明の読み方
ここではJavaのAPIからStringクラスを例に読み方を紹介します。
JavaのAPIであるJava(tm) Platform, Standard Edition 8にアクセスしてクラスからStringを探して選択してみましょう。
クラスStringのページを上から順に確認すると、まずStringクラスを使うためには、Java.langというパッケージが必要ということが分かります。
さらにStringクラスの概要や定義の方法、使い方が詳細に解説されています。
フィールド、コンストラクタ、使用できるメソッドなど、Stringクラスを使うために必要な情報も網羅されていることがわかります。
メソッドの説明の読み方
メソッドは上述したように、そのクラスやインタフェースで使用できる機能のことを指します。
たとえば、Stringでどのようなメソッドが使用できるかを確認するには、APIのStringクラスのページをスクロールしていくと、以下のようなメソッドの一覧が表示されます。
デフォルトでは使用できる全てのメソッドが表示されていますが、「静的メソッド」「インスタンス・メソッド」「具象メソッド」「非推奨メソッド」をそれぞれ選択して表示することもできます。
メソッドの一覧の中から、例えば文字列を比較するequalsメソッドの使い方を知りたい場合は、「メソッドと一覧」からequalsのリンクをクリックすると、equalsについて解説されているリンク先に飛ぶことができます。
リンク先ではメソッドの解説や「オーバーライド」「パラメータ」「戻り値」「関連項目」などの内容が解説されています。
インタフェース
ここではJavaのAPIの中から、よく使うインタフェースについて紹介していきます。
インタフェース(interface)とは、具体的な内容を書かずにメソッドの型のみを宣言したクラスのようなものを言います。
インタフェースの詳しい解説については以下の記事を参考にしてください!
List
Listは格納した順にindexが生成され、値と紐づけされるコレクションです。
Listはindexを指定して要素にアクセスしたり、Listで格納した値を検索することもできます。
使用するパッケージ:
java.util
オブジェクトの生成:
List<String> list = new ArrayList<>();
代表的なメソッド:
add(E e), get(int index), size()
使用例:sizeメソッドで要素数を調べる
//オブジェクトの生成 List<String> list = new ArrayList<String>( Arrays.asList("apple", "orange", "melon")); System.out.println("List = " + list); System.out.println("要素数 = " + list.size());
実行結果:
List = [apple, orange, melon] 要素数 = 3
Listインタフェースの使い方については、以下の記事でも詳しく解説しています!
Map
Mapは「キー」と「値」の2つの要素で構成されるコレクションです。
Mapの値にアクセスするにはキーを指定します。
使用するパッケージ:
java.util
オブジェクトの生成:
Map<String, String> map = new HashMap<>();
代表的なメソッド:
put(K key, V value), containsKey(Object key)
使用例:値の追加
//オブジェクトの生成 private static Map<String, String> map = new HashMap<>(); static { map.put("item1", "apple"); map.put("item2", "orange"); map.put("item3", "melon"); } public static void main(String[] args) { for(Map.Entry<String, String> entry : map.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } }
実行結果:
item2 : orange item1 : apple item3 : melon
Mapインタフェースの使い方については、以下の記事でも詳しく解説しています!
Set
Setは重複しない要素の集まりがあるコレクションです。
Listはindexの順番通りに並んだ要素のコレクションで重複した要素を持つことができますが、Setでは重複した要素を持つことはできません。
使用するパッケージ:
java.util
オブジェクトの生成:
Set<String> set = new HashSet<>();
代表的なメソッド:
add(E e), remove(Object o), size()
使用例:値の追加
public static void main(String[] args) { //オブジェクトの生成 Set<String> set = new HashSet<>(); Collections.addAll(set, "apple", "orange", "melon"); for (Iterator<String> itr = set.iterator(); itr.hasNext();) { System.out.println(itr.next()); } }
実行結果:
orange apple melon
Setインタフェースの使い方については、以下の記事でも詳しく解説しています!
クラス
ここではJavaのAPIの中から、よく使うクラスについて紹介していきます。
クラス(class)とはJavaプログラムの1番外側に記述し、1つの機能をひとまとめにしたもので、クラスの中には処理に必要なメソッドや変数などをまとめて記述します。
クラスの生成:
class クラス名{ … }
クラスの使い方については次の記事でも詳しく解説しています。
String
StringクラスはJavaの中でも使用頻度が高いクラスです。
主に文字列を生成したり、結合・置換などの文字列操作を行うときに使用します。
使用するパッケージ:
java.lang
オブジェクトの生成:
//文字列を生成 String str1 = "Hello"; //オブジェクトを生成して文字列を指定 String str2 = new String("Java!!");
代表的なメソッド:
format(String format, Object… args), indexOf(String str), isEmpty()
使用例:値の追加
public static void main(String[] args) { //文字列を生成 String str1 = "Hello"; //オブジェクトを生成して文字列を指定 String str2 = new String("Java!!"); System.out.println(str1); System.out.println(str2); }
実行結果:
Hello Java!!
Stringクラスの使い方については、以下の記事でも詳しく解説しています!
File
Fileクラスはファイルを扱うためのクラスです。
ファイルを扱うには、オブジェクトを生成して、生成したオブジェクトに対してファイルの読み込みや書き込みなどのファイル操作を行います。
使用するパッケージ:
java.io
オブジェクトの生成:
File file = new File(ファイル名);
代表的なメソッド:
delete(), exists(), getName()
使用例:ファイルの存在を調べる
public static void main(String[] args) { //オブジェクトの生成 File file = new File("java.txt"); // ファイルの存在確認 if(file.exists()){ System.out.println("ファイルが存在します。"); }else{ System.out.println("ファイルが存在しません。"); } }
Fileクラスの使い方については、以下の記事でも詳しく解説しています!
Calendar
Calendarクラスは、特定の日付や日時を指定して日付の操作を行うためのクラスです。
使用するパッケージ:
java.util
オブジェクトの生成:
Calendar cl = Calendar.getInstance();
代表的なメソッド:
add(int field, int amount), get(int field), getInstance(),
使用例:ファイルの存在を調べる
public static void main(String[] args) { //Calendarクラスのオブジェクトを生成 Calendar cl = Calendar.getInstance(); //現在の年月日を取得する System.out.println("YEAR:" + cl.get(Calendar.YEAR)); System.out.println("MONTH:" + cl.get(Calendar.MONTH)); System.out.println("DATE:" + cl.get(Calendar.DATE)); }
実行結果:
YEAR:2017 MONTH:8 DATE:17
CalendarクラスやDateクラスは月またぎの問題があり、0が1月となりますので注意しましょう。
Calendarクラスの使い方については、以下の記事でも詳しく解説しています!
ArrayList
ArrayListクラスは要素数が決まっていない動的な配列で、コレクションの中でもよく使用されます。
使用するパッケージ:
java.util
オブジェクトの生成:
List<データ型名> list = new ArrayList<データ型名>();
代表的なメソッド:
add(E e), get(int index), ort(Comparator<? super E> c)
使用例:値の追加
public static void main(String[] args) { //オブジェクトの生成 List<String> list = new ArrayList<>(); list.add("apple"); list.add("orange"); list.add("melon"); for(Iterator it = list.iterator(); it.hasNext();) { System.out.println(it.next()); } }
実行結果:
apple orange melon
ArrayListクラスの使い方については、以下の記事でも詳しく解説しています!
Date
Dateクラスは、指定した日時を取得したり、日時を計算したいときに使用します。
使用するパッケージ:
java.util
オブジェクトの生成:
Date date = new Date();
代表的なメソッド:
compareTo(Date anotherDate), getTime(), toString()
使用例:現在の日付を取得
public static void main(String[] args) { //Dateクラスのオブジェクトを生成する Date date = new Date(); //現在の日時を出力する System.out.println(date.toString()); }
実行結果:
Sun Sep 17 02:43:03 UTC 2017
Dateクラスの使い方については、以下の記事でも詳しく解説しています!
Math
Mathクラスは基本的な数値の計算を行うときに使用します。
使用するパッケージ:
java.lang
オブジェクトの生成:
Mathクラスはオブジェクトを生成しなくても使用できます。
代表的なメソッド:
abs(型 a), max(型 a), min(型 a), pow(型 a, 型 b), random()
使用例:乱数を生成する
public static void main(String[] args) { //乱数を生成し、整数に四捨五入する double dnum = Math.random()*10; dnum = Math.ceil(dnum); System.out.println(dnum); }
実行結果:
2.0
その他のAPI
ここではJavaのリファレンスで公開されている便利なAPIを一部紹介します。
JavaMail
JavaMailはメールの送受信を行うことができるAPIです。
JavaMailを使用することによりメールアプリケーションを作成することができます。
JavaMailを使用するには、以下のページよりバージョンを選択し、「Download」ボタンよりダウンロード及びインストールを行います。
http://www.oracle.com/technetwork/java/index-138643.html
Servlet(サーブレット)
Servlet(サーブレット)はサーバー側で動作するjavaアプリケーションを作成するときに使用します。
Servletと同じ機能としてJSPがありますが、JSPはPHPのようにHTMLの中にスプリクトを記述するのに対して、ServletはJavaプログラムと同様に作成します。
Servletは以下のページよりパッケージのダウンロード及びインストールを行います。
https://tomcat.apache.org/tomcat-8.0-doc/servletapi/index.html
Servletについては次の記事で詳しく解説しています。
Applet(アプレット)
Applet(アプレット)はWebブラウザで動作するJavaアプリケーションを作成するときに使います。
Javaアプレットは、Javaプラグインをブラウザにインストールすることで利用できます。
Webページの一部として埋め込まれて、Webブラウザ上で実行されます。
利用者の操作を受け付けたり、HTMLでは難しい動きのある内容を表示したりすることができます。
Applet(アプレット)については次の記事で詳しく解説しています。
JSON
JSONはテキストベースで言語に依存しないデータ形式です。
JSONはキーと値で構成されていて記述が容易なため、理解しやすい形式と言えます。
そんなJSONの使い方については、以下のJavaのドキュメントで解説されています。
http://www.oracle.com/technetwork/articles/java/json-1973242.html
JSONについては次の記事で詳しく解説しています。
sound
soundはMIDI (Musical Instrument Digital Interface)データの入出力や音声データの取り込み、再生などの処理を行うときに使用します。
soundは人が話した内容を処理して結果を返す音声認識でもよく使用されているパッケージです。
主なパッケージ:
javax.sound.midi
javax.sound.midi.spi
javax.sound.sampled
javax.sound.sampled.spi
旧バージョンのAPI
2017年現在のJavaの最新版はバージョン8ですが、過去のバージョンのAPIを確認したい場合は、以下のリンク先から確認することができます。
Java7のAPI
http://docs.oracle.com/javase/jp/7/api/
Java6のAPI
https://docs.oracle.com/javase/jp/6/api/
まとめ
ここではJavaのAPIに関して、
・Javaのリファレンスとは
・JavaのAPIとは
・JavaのAPIドキュメントの読み方
・代表的なインタフェースの解説
・代表的なクラスの解説
・その他の便利なAPI
・旧バージョンのAPI
などについて解説しました。
JavaのAPIは膨大な数に上り、あらゆる機能が用意されています。
そのため、APIのドキュメントを利用して効率の良いプログラミングを行うことが上達の近道となります。
もし、JavaのAPIについて忘れてしまったら、この記事を思い出してくださいね!