
Javaの基本APIを解説します
- SE
- JaveのAPIとは何の略なのでしょうか。
- PM
- Application Programming Interfaceの略です。
目次
JavaのAPIとは?
APIとは、Application Programming Interfaceの略です。
この言葉自体にはアプリのプログラムで呼び出されるメソッドという程度の意味しかありませんが、一般的にはプログラム言語で最初から用意されている機能がAPI、または標準APIと呼ばれます。
Javaには豊富な標準APIが用意されているので、Java環境をインストールするだけで様々なことができます。
この記事では、そういった標準APIの中でよく使う基本的なものをご紹介します。
java.langは最も基本的なAPI
Javaで最も基本的なAPIは「Java.langパッケージ」です。
このパッケージの機能があれば、基本的なプログラムが作れます。その中でもよく使う機能は、「Stringクラス」と「Systemクラス」です。
以下は、文字列の””Hello World!””をコンソールに表示するコードです。
java.lang.String str = “”Hello World!””;
java.lang.System.out.println(str);
Java.langは、Javaでも基本中の基本であるAPIのため、以下のように省略することが普通になっています。
String str = “”Hello World!””;
System.out.println(str);
Object型は全ての基本
Java.langパッケージの「Objectクラス」は最も重要なクラスです。
なぜなら全てのクラスは、このObjectクラスの子クラスだからです。以下の””””で囲った文字列はString型ですが、親クラスのObject型の変数で参照することができます。
Object obj = “”文字列です。””;
System.out.println(obj);
JavaのObject型は、以下のようにクラス型ではない数値も扱うことができます。この機能をオートボクシングと言います。
Object obj = 123;
System.out.println(obj.getClass());
オートボクシング後のgetClass()の結果は以下のようになります。数値はInteger型に変換されることを意味しています。
このクラスもint型の数値を保持できるクラスとしてよく利用されます。
class java.lang.Integer
java.ioパッケージはファイル読み書きで使用する
「java.ioパッケージ」は、ファイルの読み書きで利用するAPIです。
なお、java.langパッケージ以外を利用する場合は、以下のようにAPIを利用するための宣言が必要になります。
ソースの先頭にimport java.io.*;を追加し、以下のように利用します。
import java.io.*;
File file1 = new File(“”c:\\test\\test1.txt””);
File file2 = new File(“”c:\\test\\test2.txt””);
try(FileReader fr = new FileReader(file1);
BufferedReader br = new BufferedReader(fr);
FileWriter wr = new FileWriter(file2);
BufferedWriter bw = new BufferedWriter(wr);) {
String str = br.readLine();
while(str!=null) {
bw.write(str+System.lineSeparator());
str = br.readLine();
}
}
catch (Exception e) {
e.printStackTrace();
}
ファイル読み書き処理の解説
上のJavaサンプルでは、テキストファイルのtest1.txtの内容を1行ずつ読み取って、test2.txtにその内容を書き込んでいます。
このようなファイル読み書き処理は、終了後にCloseが必要ですが、try()のカッコ内に記述することで自動的にCloseしてくれます。
また、System.lineSeparator()と打ち込めば、実行している環境の改行コードを取得できます。br.readLine();で改行コードが除かれているため、この指令で書き込む時に付与を実行します。
java.utilパッケージはとても便利
「java.utilパッケージ」は便利な機能を持っています。多く使われるのは複数の要素を格納するのに便利なArrayListです。
以下を実行する場合は、Javaのソースの先頭に「import java.util.*;」を追加してください。
import java.util.*;
ArrayList<String> list = new ArrayList<String>();
list.add(“”太郎””);
list.add(“”二郎””);
list.add(“”花子””);
list.remove(“”二郎””);
for (Iterator<String> it = list.iterator(); it.hasNext();) {
System.out.println(it.next());
}
実行結果は、
太郎
花子
となります。ArryaListは要素の追加や削除も自由自在です。配列ではそれができないので、ArrayListが多く使われます。
HashMapとHashSet
java.utilパッケージの「HashMap」は、以下のように、キーと値がセットになっているデータを扱えます。
HashMap<String, String> map = new HashMap<String, String>();
map.put(“”学級委員””, “”太郎””);
map.put(“”飼育係””, “”花子””);
System.out.println(map.get(“”飼育係””));
上のJavaサンプルを実行すると「花子」と表示されます。
また「HashSet」は、重複要素を除いたデータを扱えます。
HashSet set = new HashSet();
set.add(“”太郎””);
set.add(“”花子””);
set.add(“”太郎””);
for (Iterator it = set.iterator(); it.hasNext();) {
System.out.println(it.next());
}
実行結果は以下になります。HashSetに同じ要素を追加しても無視されます。
太郎
花子
DateとCalendarとLocalDate
java.utilパッケージの「Dateクラス」も、Javaではよく使用します。
System.out.println(new Date());
を実行すると、以下のような結果を得られます。
Thu Oct 01 15:34:06 JST 2020
ただし、月や日を取得する場合は、Calendarクラスが推奨されています。
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)); // 年
System.out.println(c.get(Calendar.MONTH)); // 月
System.out.println(c.get(Calendar.DATE)); // 日
System.out.println(c.get(Calendar.HOUR)); // 時
System.out.println(c.get(Calendar.MINUTE)); // 分
なお、Calendarクラスは、デフォルトではグローバル時間基準で、月が1ではなく0から始まります。ローカル時間で月を1から始めたい場合は、java.timeパッケージのLocalDateを利用しましょう。
LocalDate ld = LocalDate.now();
System.out.println(ld.getMonthValue());
- SE
- 基本的なjava.langのほかにも、さまざまなAPIがあるのですね。
- PM
- ここで触れたAPIはごく一部で、JavaにはたくさんのAPIが存在します。
Javaにはまだ多くのAPIが存在する
この記事では、Javaの基本的なAPIについてご紹介してきました。ここで触れたAPIはごく一部で、JavaにはたくさんのAPIが存在します。
知識量はスキルに直結するので、ご自分で色々と試しながら、できるだけ多くのAPIを知ってください。