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

Javaでのデフォルトメソッドの使用は何ですか?


Javaのインターフェースはクラスに似ていますが、finalで静的な抽象メソッドとフィールドのみが含まれています。

  • これは、メソッドのプロトタイプの仕様です。プログラマーをガイドする必要があるとき、またはタイプのメソッドとフィールドをどのように指定するかを契約する必要があるときはいつでも、インターフェースを定義できます。
  • クラスが特定の仕様に従う必要がある場合は、必要なインターフェースを実装し、そのインターフェース内のすべての抽象メソッドの本体を提供する必要があります。
  • インターフェイスのすべての抽象メソッドの実装を提供しない場合(実装する場合)、コンパイル時エラーが生成されます。

インターフェースに新しいメソッドが追加された場合はどうなりますか?

特定のインターフェースを使用していて、そのインターフェースにすべての抽象メソッドを実装し、後で新しいメソッドが追加されたとします。そうすると、このインターフェースを使用するすべてのクラスは、それぞれに新しく追加されたメソッドを実装しない限り機能しません。

Java8からこの問題を解決するために、デフォルトのメソッドが導入されています。

デフォルトのメソッド

デフォルトのメソッドは、ディフェンダーメソッドまたは仮想拡張メソッドとも呼ばれます。 defaultを使用してデフォルトのメソッドを定義できます キーワードとして-

default void display() {
   System.out.println("This is a default method");      
}

一度、インターフェイスの特定のメソッドにデフォルトの実装を記述します。このインターフェースをすでに使用(実装)しているクラスに実装する必要はありません。

次のJavaの例は、Javaでのデフォルトのメソッドの使用法を示しています。

interface sampleInterface{  
   public void demo();  
   default void display() {
      System.out.println("This is a default method");      
   }
}
public class DefaultMethodExample implements sampleInterface{
   public void demo() {
      System.out.println("This is the implementation of the demo method");
   }  
   public static void main(String args[]) {      
      DefaultMethodExample obj = new DefaultMethodExample();
      obj.demo();
      obj.display();      
   }
}

出力

This is the implementation of the demo method
This is a default method

  1. Javaでpack()メソッドを使用できるのはいつですか?

    pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p

  2. JavaでのsetBounds()メソッドの使用は何ですか?

    レイアウト マネージャー 追加されたコンポーネントの位置とサイズを自動的に決定するために使用されます。レイアウトマネージャーがない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。 setBounds() このような状況では、メソッドを使用して位置とサイズを設定します。コンポーネントの位置とサイズを手動で指定するには、フレームのレイアウトマネージャーを nullにすることができます。 。 setBounds() setBounds() メソッドには4つの引数が必要です。最初の2つの引数は、x座標とy座標です。 左上の コーナー コンポーネントの3番目の引数は幅です コ