Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のインターフェースにプライベートメソッドが必要なのはなぜですか?


インターフェースはデフォルトをサポートします 方法 Java8バージョン以降。これらのデフォルトのメソッドには、複数のメソッドで共通のコードが含まれている場合があります。そのような状況では、別のデフォルトのメソッドを記述して、コードを作成できます。 再利用性共通コードが機密である場合 その場合、そのインターフェースを実装するすべてのクラスがすべてのデフォルトメソッドにアクセスできるため、デフォルトメソッドのままにしておくことはお勧めできません。

インターフェースにはプライベートメソッドを含めることができます Java 9 以降 バージョン。これらのメソッドは、クラス/インターフェース内でのみ表示されます 、したがって、機密にはプライベートメソッドを使用することをお勧めします コード 。これが、インターフェイスにプライベートメソッドを追加した理由です。

構文

private void methodName() {
   // some statementscode
}

interface Operation {
   default void addition() {
      System.out.println("default method addition");
   }
   default void multiply() {
      division();
      System.out.println("default method multiply");
   }
   private void division() {         // private method
      System.out.println("private method division");
   }
}

class PrivateMethodTest implements Operation {
   public static void main(String args[]) {
      PrivateMethodTest test = new PrivateMethodTest();
      test.multiply();
   }
}

出力

private method division
default method multiply

  1. インターフェイスのJava8デフォルトメソッド

    Java 8では、インターフェースにデフォルトのメソッド実装の新しい概念が導入されています。この機能は下位互換性のために追加されているため、古いインターフェースを使用してJava8のラムダ式機能を活用できます。 たとえば、「List」または「Collection」インターフェースには「forEach」メソッド宣言がありません。したがって、このようなメソッドを追加すると、コレクションフレームワークの実装が壊れてしまいます。 Java 8ではデフォルトのメソッドが導入されているため、List / CollectionインターフェースはforEachメソッドのデフォルトの実装を持つことができ、これ

  2. Javaのインターフェース

    インターフェースはJavaの参照型です。クラスに似ています。これは、抽象的なメソッドのコレクションです。クラスはインターフェースを実装し、それによってインターフェースの抽象メソッドを継承します。 インターフェイスには、抽象メソッドに加えて、定数、デフォルトメソッド、静的メソッド、およびネストされた型も含まれる場合があります。メソッド本体は、デフォルトのメソッドと静的メソッドにのみ存在します。 インターフェイスの作成は、クラスの作成に似ています。ただし、クラスはオブジェクトの属性と動作を記述します。また、インターフェースには、クラスが実装する動作が含まれています。 インターフェイスを実装す