はじめに
オラクル認定資格教科書 Javaプログラマ Silver SE8
第一章 Javaの基本
第二章 Javaのデータ型の操作
第三章 演算子と判定構造の使用
第四章 配列の作成と使用
第五章 ループ構造の使用
第六章 メソッドとカプセル化の操作
第七章 継承の操作← イマココ!!
第八章 例外の処理
第九章 Java APIの主要なクラスの操作
インターフェース
インターフェースとは、クラスに含まれるメソッドの具体的な処理内容を記述せず、定数とメソッドの型のみを定義したもの。
・すべてのメソッドは抽象メソッドである
・基本的にフィールドを持たない(public static finalが付いたフィールドは持てる(定数))
インターフェースの定義
メソッド
インターフェースで宣言するメソッドは抽象メソッドであり、中身を持つことはできない。注意点として、中カッコ「{}」だけを記述した場合(中カッコの間に処理を記述しない)は「処理なし」という中身とみなされるため、コンパイルエラーになる。
インターフェースは継承される前提のものなので、インターフェース自体は暗黙的にpublicとみなされる。インターフェースに宣言されたメソッドは、自動的にpublicかつabstractとなり、「public abstract」を省略して書くことができる。
interface インターフェース名{
void hello(); // public abstract void hello();と同じ
void sample(){} // 中カッコがついているため、コンパイルエラー
}
フィールド
インターフェースでは以下の2つのルールを満たしたフィールドのみ記述できる。(ようは定数のみ)
・finalを使って、動的に値が変更されないこと(定数であること)
・staticを使って、インスタンスが生成されなくても使えること
int NUM = 1;
左記のように記述した場合、自動的に「public static final」が付けられ、定数となる。
public interface インターフェース名{
int NUM1 = 1;
int NUM2 = 2;
public static final int NUM3 = 3;
}
インターフェースの実現
インターフェースを継承して子クラスを定義する場合は「implements」を使う。
インターフェースに定義された抽象メソッドのアクセス修飾子と実装した具象メソッドは同じアクセス修飾子である必要がある。
class クラス名 implements インターフェース名{
public void hello() {
System.out.println("hello");
}
}
#### インターフェースの多重実現
インターフェースの多重実現が可能。
多重実現する場合は、カンマ区切りで列挙する。
class クラス名 implements インターフェース名1, インターフェース名2{
}
インターフェースの継承
インターフェースを継承し,より拡張した新しいインターフェースを定義できる。
また、クラスの継承とは異なり、`多重継承も可能である。
インターフェースの継承は、クラスと同様「extends」を使用する。
public interface インターフェース名1 extends インターフェース名2 {
}
リンク集
【Javaの基本①】クラスの構造
【Javaの基本②】パッケージとインポート
【継承の操作②】インターフェース
【Javaのデータ型の操作①】プリミティブ型のデータ・参照型
【演算子と判定構造の使用①】論理演算子(&&、||)、同一性(==)、同値性(equals)
【演算子と判定構造の使用②】分岐処理(if、swich)
【配列の作成と使用】
【ループ構造の使用】while文、do-while文、for文、拡張for文
【メソッドとカプセル化の操作①】メソッドの概要
【メソッドとカプセル化の操作②】オーバーロード、コンストラクタ
【継承の操作①】クラスの継承
【例外の処理】
【Java APIの主要なクラスの操作】