New!これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。6を使い大幅に情報量を増やした、本連載「Eclipseではじめるプログラミング」の改訂版となります今回はインターフェイスというオブジェクト指向言語Javaにとって非常に重要な概念について解説します。インターフェイスをうまく使用することによって、プログラムの実装変更を簡単に行えるようになります。インターフェイスJavaのインターフェイスとは、具体的な処理が書かれていないメソッドの型だけを宣言している特別なクラスのようなものです。クラスと違ってnew演算子を使ってインスタンスを生成することはできません。インターフェイスが何かをつかむには、具体的にどのようにして使うものなのかを見た方が早いでしょう。いうことで、とにかく使ってみましょう。Javaには、配列というデータ構造をオブジェクトとして扱えるようにしたjava.util.ArrayListというクラスがあります。これと似ているのですが、連結リストというデータ構造をオブジェクトとして扱えるようにしたjava.util.LinkedListというクラスもあります。どちらもデータをリスト(ある順番で並んだオブジェクトの集合。一覧表を抽象化したものと考えてもよい)で扱いたいときに使います。同じリストとはいえ、それぞれ特徴があるので、使用場面によってどちらを使うかを決めるのが普通です。ここでは、特徴の差については考えないで、単純に使ってみることに注目して、プログラムを作成してみます。手順は以下のとおりです。Sample100クラスを作成してみましょう。Eclipseを起動し、パースペクティブを[Java]に切り替えておいてください。パースペクティブが[Java]になっていないときは、メニューの[ウィンドウ]→[パースペクティブを開く]→[Java]を指定すれば、切り替えることができます。次のような手順で新規にクラスを作成することにします。args)]をチェックする[終了]ボタンをクリック出来上がったクラスSample100に、次の水色部分を追加します。コーディングすることにより、Sample100クラスのインスタンスをnew演算子で生成して、executeメソッドを呼び出しています。executeメソッドではjava.util.ArrayListのalistとjava.util.LinkedListのllistのどちらにも“A”、“B”という要素を追加(add)し、その後で繰り返し文を使って変数に含まれている要素を順に取り出す(get)という処理をしています。alistとllistに含まれている要素の数はsizeメソッドで取得しています。実行結果は画面1のようになります。B画面1ここで、alistとllistに関係する処理を見ると、変数の型と名前が違うだけで、どちらも同じ手順で同じメソッド(addメソッド、sizeメソッド、getメソッド)を使っていることに気付くはずです。これだけそっくりだと、もっと簡潔にコーディングできないかと思うことでしょう。こんなときにインターフェイスが役に立ちます。Javaには、java.util.Listという一般的なリストを表現するためのインターフェイスがあります。どちらもjava.util.Listインターフェイスを実装(implements)しています。java.util.LinkedListもリスト(java.util.List)として扱うことができます」ということになります。addメソッド、sizeメソッド、getメソッドはどれもjava.util.Listのメソッドなので、Sample100のexecuteメソッドは次のように書き換えることができます。行き当たりばったりでは、このようにうまくはいきません。今回は、最初からjava.util.Listを使えるように、説明の都合上仕組んであったので、うまく書き換えができるのです。");}System.out.println("");太字の部分に注目をしてください。書き換える前は違っていた変数の型と名前を同じにすることができています。java.util.LinkedListもリスト(java.util.List)として扱える」ということから、こういったことができるのです。インターフェイスを使うことにより、重複するコードが出てきたので、メソッドとしてまとめることにしましょう。次のように新しいtestメソッドを作成します。最初に示したコードに比べてずいぶんとスリムになりました。testメソッドではjava.util.Listインターフェイス型の仮引数listが宣言されています。java.util.LinkedList型のインスタンスを渡すことができます。このようにして、利用するクラスを簡単に変更できるように、メソッドを書くことができるわけです。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。