JavaRush /Java Blog /Random-JA /Javaのインターフェース
vinsler
レベル 35

Javaのインターフェース

Random-JA グループに公開済み
私は、特定のリクエストがある人に理解できないことを説明するという目標がなければ、ストーリーテラーとしては下手なので、簡単な事は理解しています。そして、一つには、それについてここに書きます。私は、最初に質問してからその方法を教えるという JavaRush の教育例には従いません。私は、最初に話してから質問することと、最初に話してから説明することを支持します。
Java のインターフェース - 1
BS: アクション == 行動、これらを同義語として捉えてください。アクションは単により正確に理解されます。それは常にアクティブなものであり、行動は何も示さない可能性があります。

インターフェース - インターフェース

これは何ですか?インターフェイス リストの例 (ジェネリックを含む):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
共通のクラッド (CRUD: 作成、読み取り、更新、削除) インターフェイス。 心配しないでください。すべては非常に簡単です。このインターフェイスは、多くのデータベースの操作が次の原則に基づいていることを意味します。レコードの追加、更新、削除、すべてのレコードの検索が必要です。これをあと 100 回見ることになり、ほぼ同じインターフェイスを同じ回数だけ書くことになります。 クラスによって実装する必要があるため、パブリックに指定されています。クラスによって実装されるとはどういう意味ですか? すべては非常に単純です。インターフェースのすべてのメソッドを記述する必要があります。クラスでの最も単純な実装例:
void add (T t) {
	bookstore.add(t);
}
T t の代わりに、特定のジェネリックが置き換えられます。一言で言えば、これは変数の TYPE であり、これが最もよく T = Type として表される理由です。この例では、次のようになるとします。
void add (Book book) {
	bookstore.add(book);
}
当然のことながら、Book book の代わりに、実装に必要な任意の変数を置き換えることができます。理解するには、理論的には T = オブジェクトであると想像できます。Java ではすべてがオブジェクトであるため、そこで任意のクラス/変数を定義することもできます。唯一の問題は後で発生します - クラスがゼロの場合の例外などです。言い換えれば、オブジェクトを特定の動作部分に分割することによってオブジェクト間の関係を定義する、特定のプログラム構造です。インターフェイスの目的は、クラスによる実装のための機能を定義することです。つまり、メソッド シグネチャの説明です。インターフェイス内には、値を返したり入力したりするメソッドの名前があり、それだけです。ここでいくつかの変数を指定することはできますが、それらはすぐに暗黙的に public static Final になり、プログラムのどの部分からでもアクセスできます。インターフェースはアクションを記述するため、同じアクションがインターフェースに含まれます。関数またはメソッド。 なぜこれが必要なのでしょうか? これにより何が簡素化され、どのような利点が得られるのでしょうか? 動作や動作の説明を簡略化します。私たちは何をすべきかを言いますが、各クラスはそれを行う方法をそれ自体で実装します。大規模なプロジェクトで時間を節約します。インターフェイスは、何らかのタスクを実行する必要があることがわかっているが、その実行方法が異なる場合がある状況で作成されます。インターフェイスはアクションの名前を記述します。これは単に何らかの抽象化の方向を示すものです。ただし、Cloneable、Remote などのマーカーなど、メソッドやフィールドを持たないインターフェイスも存在します。誰もが大好きな車の例を見てみましょう。そのインターフェイスには、ステアリングホイールの回転や進行方向、速度の増加、ガソリンの残量など、車の可能な動作が記述されます。つまり、どの車でも同じ動作が可能です。言い換えれば、私たちは最初の車の作成の最も低いレベルまで劣化のジャングルに降り立ち、私たち自身の頭脳を使って、それがどのように作られ、それが何を持っていたかを理解します。当然のことながら、これは抽象的に、アクションについてのみ説明します。最初の車には何が付いていましたか? ハンドルはありましたか?それは、つまり、どこかに曲がっていたことを意味し、ハンドル/動きの方向でした。車輪はありましたか?はい、それは私が一定の速度で運転していた、つまり速度が変化したことを意味します。それがインターフェース全体です。ただし、一般に、インターフェイスは特定のアクションを実装するために作成されます。それらの。私たちは、あなたが考えられる他のどんなものよりも、より具体的なもののためにプログラムを書きます。したがって、インターフェイス自体には、より明確でより具体的なメソッドが含まれます。もちろん、それらは可能な限り抽象的になります。インターフェイスはクラスとして相互に継承できます。
interface MyInterface extends NotMyinterface;
インターフェイスはクラスに実装されます。インターフェイスは好きなだけ実装できます。継承とは異なり、1 つだけから継承します。
class NewClass extends OldClass implements MyInterface, NotMyinterface;
それらの。いくつかのアクションを考え出し、それらに名前を付け、データを入力し、データを返し、これらすべてをインターフェースに書き込み、クラスを作成してインターフェースをこのクラスに追加しました。このクラスにインターフェイスを実装しました。さらに、インターフェイスに記述されているすべてのメソッド/関数には実装が必要です。これは、メソッドの前にデフォルトという単語を追加し、クラスのようにメソッド内に実装を直接記述することで、インターフェイス自体で直接実行できます。これは Java バージョン 8 で可能になりました。このインターフェースを実装するクラス内で実行することもできます。さて、インターフェースを作成し、それをクラスに実装し、その実装をクラスにロールアウトしたら、それを実行してテストできます。インターフェースでは次のことも読むことができます。
  • 静的メソッド。
  • プライベートメソッド。(コードの繰り返し)
  • 変数/定数。
  • ネストされたインターフェイス。
しかし、これは後で行う方が良いですし、頭の中にたくさんのことを詰め込みすぎるのも有害です。興味深い質問ですが、ボルボとは何ですか? クラスかインターフェイスか?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
インターフェイスに加えて、抽象クラスとクラスについても続ける価値があります。後は、あと数時間余裕ができたときかもしれません。))) PS: みなさん、すべての批判は投稿または PM でお願いします。誰もがそれを持っていることを完全に理解しています))) そして、私はいつもそれを聞くことに興味があります。なぜなら、これは少し良くなり、より良くなる理由だからです。再び前に進み続けます。それでは、皆さんに感謝します。そしてプログラミングの幸運を祈ります。)))
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION