【Java入門(4)API活用・例外処理 #1】JavaAPI・Objectクラス

 

みのる
こんにちは。笑顔で感謝!✨ みのるコーチです。
今回も、ご覧いただき、ありがとうございます。

今回は…

Java入門4 API活用・例外処理 #1
JavaAPI・Objectクラス

というテーマでお送りします。

今回から、Java入門 の最終コースです。

一区切りとなる部分です。引き続き、楽しんで学んでいきましょう。

彩香
最終章に入るということですね。
頑張ります。よろしくお願いします。
剛留
オブジェクト指向 基本編・活用編でパワーアップしました。
このコースも、張り切ってやっていきます。

よろしくお願いします。

【1】JavaAPI

JavaAPIとは、Javaプラグラムで
利用できるクラスを まとめたもので…

JDK に用意されています。

そして、Java標準クラスライブラリとも
言われています。
 
この API(Application Program Interface)は…

外部のソフトウェアが持つ機能を
利用できる仕組みのことですので…

JavaAPI は Javaの機能を利用できる仕組み
ということになります。

JavaAPI
✅ Javaプラグラムで利用できるクラスを
  まとめたもので JDK に用意されている。

✅ Java標準クラスライブラリとも言う。

✅ API(Application Program Interface)は
  外部のソフトウェアが持つ機能を
  利用できる仕組みのこと。

APIのイメージは、こんな感じです。

アプリケーションプログラムがあります。

これは、特定の目的のために作られたプログラムで…

売上管理する。表計算する。…
といった目的があるプログラムです。

これに対して、ライブラリ(機能群)があります。

こちらは、アプリケーションプログラムから
使われる前提で作られています。

それ単体では、特定の目的がありません。

この時に、ライブラリの機能に対して…

「こうやって呼び出せば機能を利用できますよ」

と定めてあるものが
API(Application Program Interface) です。

これにより、アプリケーションプログラムは
ライブラリの機能を 利用することができるのです。

JavaAPIの場合のライブラリの最小単位は、クラスです。

そのクラスが、パッケージ単位でまとめられています。

更に、パッケージが
モジュールという単位で区切られています。

このように形作られた…
Java標準ライブラリのクラス数は 数千個に及びます。

多くのクラスを活用できる事になりますね。

そして、基本になるモジュールは
java.base モジュールです。

java.base に含まれる
代表的なパッケージを見てみましょう。

超基本的なクラス群の java.lang パッケージ。

Javaプログラミングを便利にする java.util パッケージ。

数値の計算などに関するパッケージの java.math 。

ネットワーク関連の java.net パッケージ。

java.io パッケージは
ファイルの読み書きなどに関連しています。

Java超入門から利用してきた…

System.out.println()
Stringクラス
Integer.parseInt()

なども…
JavaAPI の仕組みで呼び出せる機能の1つなんです。

私たちは、Java基本文法を学びました。

そして、オブジェクト指向を学んだので…
クラスをインスタンス化する方法も知っています。

そして、インスタンスのメンバ(フィールド・メソッド)や
クラスのメンバに アクセスする方法も 学んできました。

ですので、API(どんなクラスがあって、どんなメンバがあるか)
が分かれば、充分に活用できることになります。

彩香
多くのクラスを活用して行けたら
Javaプログラムの世界が広がりそうですね。
剛留
質問です。JavaAPIの詳細について調べたい時には
どうしたら良いでしょうか。
みのる
剛留くん、やる気満々という感じですね。

JavaAPIの詳細を調べたい時の方法については
次のコーナーで見ていきましょう。

【2】JavaAPIドキュメント

JavaAPIの詳細を調べるために
JavaAPIドキュメントが準備されています。

https://www.oracle.com/jp/java/technologies/documentation.html

このページで、対象のバージョンのドキュメントを
調べる事ができます。

【3】java.lang.Object

私たちは、継承の勉強をした時に…

全てのクラスのスーパークラスは
java.lang.Object クラス… ということを学びました。

Javaでクラスを作成する時に、クラスを継承する記述を
しなくても、自動的にjava.lang.Object を継承しますし…

あるクラスを継承していても、それらのクラスは…

元を辿ると java.lang.Object クラスを継承することに
なるのです。

彩香
質問です。どうして、全てのクラスの元になる
java.lang.Object が存在するのでしょう。
みのる
確かに そのポイント、気になるところですね。

では、java.lang.Object が存在する意味を
考えてみましょう。

クラスには、基本的に備えておいたほうが良い
メソッドが、いくつかあります。

例えば、インスタンス同士が「同じ」かどうか
判断する

equals() メソッド
や…

インスタンスを 文字列で表現する

toString()メソッド

があります。

今回は toString() を考えてみましょう。

このように、基本的に備えておいたほうが良いメソッドを
java.lang.Object に定義して、まとめておきます。

そして、各クラスが必ずこの java.lang.Object を
継承するようにしておくのです。

そうすると、クラスを利用する側は
まず、クラスをインスタンス化すれば…

toString() メソッドは必ず存在するので、クラスの種類に
関係なく 利用することが できるようになります。

そして、クラスを作る側は必要に応じて…

メソッドを オーバーライドして
作っておくこともできます。

このように、オーバーライドしておくと…

その オーバーライドされた toString() が
実行されることとなるのです。

利用する側が toString() を呼び出した時に…

オブジェクトによって最適な toString() が
実行される状態ですね。

ここで、ポリモフィズム(多態性)が
活用されることとなるのです。

彩香
java.lang.Objectの、存在意義が分かってきました。
剛留
JavaAPIドキュメントを使って 調べる習慣を身につけます。

【まとめ】

【1】JavaAPI
✅ Javaプラグラムで利用できるクラスを
  まとめたもので JDK に用意されている。

✅ Java標準クラスライブラリとも言う。

【2】 JavaAPIドキュメント
✅ JavaAPIの使い方がまとめられている。

✅ インターネットで閲覧できる。

【3】 java.lang.Object
✅ 全てのクラスのスーパークラス。

✅ 基本的なメソッドが準備されている。

✅ 継承することで、メソッドを
  オーバーライドすることができる。