【Java】インターフェースとは?その目的やメリットの解説|Fresopiya究極の自由を目指すブログFresopiyaFresopiya場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。自由を目指すエンジニアのブログです。「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。09/19/2019スポンサードリンクどうも、とがみんです。オブジェクト指向プログラミングには、インターフェイス(interface)という概念があり、Javaにおいてもインターフェイスの概念が用いられます。この記事では、Javaにおける「インターフェース(interface)」の概念、実装方法や、そのメリットをプログラムと共に紹介していきます。Contentsインターフェースとは?インターフェースの実装インターフェースを実装しない場合インターフェースを実装した場合インターフェース実装のメリットクラス間の依存性を排除でき、プログラムの変更に強くなるまとめ参考文献等インターフェースとは?そもそも「インターフェイス(interface)」とは、日本語に直すと「境界」という意味があり、USBポートのように、コンピューターと、マウス、キーボードを繋ぐ周辺機器の接続部分であったり、PCやスマホのユーザーインターフェースといった、ユーザーとデバイスの接点を表すときによく「インターフェース」という言葉が用いられます。プログラミングにおいては、ソースコードがある規模以上になると、機能ごとにプログラムを分割して管理していくことで、ソースコードが複雑化することを防いでいきますが、その際の、分割したソースコードと、メインとなるプログラムの境界、接続部分のことをインターフェースと言います。次に、プログラムいおいて、インターフェースとはどういうものなのか、どのようにインターフェースを実装するのか、また、実装することによって、どのようなメリットがえられるのかについてまとめていきます。以下にインターフェースを実装しない場合のプログラムと、インターフェースを実装したプログラムを載せています。それらを比較し、インターフェースについて考えていきます。インターフェースを実装しない場合インターフェースを実装しない場合のプログラムについてです。action(){System.out.println("印刷します");}}上記のプログラムのイメージ図は以下のような感じです。上記のコードだと、PCには、マウスしか接続できない「マウス専用ポート」しか用意されておらず、プリンターは接続できません。Mouseクラスが削除されてしまった場合、PCクラスにはMaouseクラスのコードが書かれているため、影響が出てしまします。インターフェースを実装した場合USBインターフェースを実装した場合のプログラムを以下にまとめています。//USBインターフェースを実装(implement)しているクラスであれば、自由に付け替え可能。PC{//USBインターフェースを実装(implement)しているクラスであれば、自由に付け替え可能。action(){device.action();}}PCクラスには、一つのUSB型のdevice変数を定義しています。この変数には、USBインターフェースを実装(implements)したクラスであれば、すべて接続することができます。action();}USBインターフェースは上記のように定義します。インターフェースに定義するメソッドは、具体的な処理は書かず、メソッドの型のみを宣言する。具体的な処理内容は、このインターフェースを実装したクラスに記述します。action(){System.out.println("印刷します");}}インターフェースを実装(implements)すると、インターフェースに書いたメソッドは必ずOverrideされます。上記のようにUSBインターフェースを実装した場合のプログラムのイメージ図は以下のようになります。USBインターフェースを用いることによって、USBインターフェースを実装している、マウスやプリンターといったデバイスを接続することができるようになります。Mouseクラスや、Printerクラスが削除されてしまった場合に、PCクラスには影響しません。新たにUSBインターフェースを実装したクラスを作成した場合も、PCクラスに直接変更を加える必要なく、新たなデバイスをPCに接続することができます。インターフェース実装のメリットインターフェースを利用することによるメリットについてです。クラス間の依存性を排除でき、プログラムの変更に強くなるインターフェースを使用しなかった場合は、一方のクラスを変更すると、もう一方のクラスを変更する必要性がでてきてしまいますが、インターフェースを利用することによって、一方のクラスに変更があっても、もう一方のクラスには変更する必要はありません。上記の例でいうと、インターフェースを利用しなかった場合、Mouseクラスを削除すると、PCクラスに変更を加える必要がでてきますが、USBインターフェースを用いることによって、PCクラスに直接変更を加える必要がなくなります。あらたな部品、マウスやプリンター以外にも、接続デバイスを作成する際に、USBインターフェースを実装すれば、簡単に部品の付け替えをすることができるようになります。このように、インターフェースを実装することによって、クラス間の依存性が排除され、よりプログラムの変更に強い堅牢なコードを書くことができます。まとめJavaにおけるインターフェースの概念について、またメリットについてまとめてきました。インターフェースとは、部品と部品を接続するための規約、約束事のようなものであり、それを実装することによって、部品と部品の依存性が排除され、より変更に強い堅牢なプログラムをかけるといったメリットがあります。なにか、不明点、間違っている点等あればご指摘いただけると嬉しいです。(1/3)>はじめてのインタフェース|Javaの道>インターフェースとは?~継承とは役割が違う~|オブジェクト指向プログラミング(OOP)をおさらいしよう(3)※Javaプログラミングの概念を理解するにあたってはおすすめです。Boot」でWebAPIの作成。性能向上を目的とした研究をしていました。現在はFinTech系ベンチャー企業勤務。