ページビューの合計

イエスから目を離さないでいなさい。(へブル 12:2)

2017-05-29

JAVAのインターフェースとはなに

学生はインターフェースが難しいというよ
インターフェースは gooの国語辞典で

異なる種類のものを結びつけるときの共用部分。
コンピューターで、機器やプログラムどうしをつなぐ装置、

とあるよ。
このクラスAに、X の機能を入れたい
クラスAの機能と、クラスX の機能を一緒にすればできるよ

しかしJAVAでは 2つのクラスをつなげて
新しいクラスを作る ということはできないよ

クラスAの中に、X の機能を書き込むのよ
クラスBにも、X の機能を書き込みたい
それにはどうするの

携帯電話にデジカメの機能を入れたい
パソコンにデジカメの機能を入れたい

携帯電話のデジカメとパソコンのデジカメでは
作り方は違うよね、
しかし「シャッタを押して写真をとる」のは同じだね
この機能を付けろ、その付け方は
携帯電話にあった方法、パソコンにあった方法で
と指示するよ。

この機能の指定がJAVAのインターフェースなのよ
こんなふうに書くのよ

class  パソコン  implements  デジカメ{...}
class  携帯電話  implements  デジカメ{...}

デジカメ というインターフェースは
こんなふうに書くよ。

interface  デジカメ{
   写真 シャッタを押す();
}

シャッタを押した結果出てくるのが写真だよ
写真というクラスのオブジェクトだよ

class  パソコン  implements  デジカメ{...}
の ... に、次のようにメソッドの本体を含めて書くのよ

public  写真 シャッタを押す(){...メソッドの本体....};

class  携帯電話  implements  デジカメ{...}
の ... にもどうように携帯電話用の
メソッドの本体含んだ「シャッタを押す」メソッドを書くのよ

親戚のおじさんみたいなものだよ(?)
直接受け取るものはないが、あれしろ、これしろとうるさい人がいるでしょ