Java의 일반 인터페이스

MD Aminul Islam 2023년10월12일
Java의 일반 인터페이스

제네릭 인터페이스는 추상 데이터 유형을 처리할 수 있는 인터페이스입니다. 표현 세부 사항과 독립적으로 Java 컬렉션을 조작하는 데 도움이 됩니다.

주로 계층 구조의 형태로 다중 상속을 달성하는 데 사용됩니다. 일반 인터페이스에는 모든 메소드만 포함될 수 있습니다.

일반적으로 사용되는 클래스와 달리 제네릭 인터페이스에는 생성자가 없습니다.

구현 키워드를 사용하면 인터페이스와 쉽게 연결할 수 있습니다. 일반 인터페이스에서 아래의 이점을 얻을 수 있습니다.

  1. 다양한 데이터 유형을 쉽게 구현할 수 있습니다.
  2. 제약 조건을 설정할 수 있습니다.

이 기사에서는 제네릭 인터페이스와 이를 사용하는 방법에 대해 설명합니다. 주제를 더 쉽게 만들기 위해 예와 설명을 사용하여 주제에 대해 논의합니다.

Java의 일반 인터페이스

아래에서 일반 인터페이스를 사용하여 문자 배열과 정수 배열 모두에서 최대값을 찾는 예를 볼 수 있습니다. 예제의 코드는 다음과 같습니다.

interface FindMinMax<T extends Comparable<T>> {
  T Max();
}
class MyClass<T extends Comparable<T>> implements FindMinMax<T> {
  T[] vals;
  MyClass(T[] o) {
    vals = o;
  }
  public T Max() {
    T Value = vals[0];
    for (int i = 1; i < vals.length; i++) {
      if (vals[i].compareTo(Value) > 0) {
        Value = vals[i];
      }
    }
    return Value;
  }
}

public class GenericInterface {
  public static void main(String args[]) {
    Integer nums[] = {10, 6, 2, 8, 6};
    Character chars[] = {'b', 'r', 'p', 'Z'};
    MyClass<Integer> a = new MyClass<Integer>(nums);
    MyClass<Character> b = new MyClass<Character>(chars);
    System.out.println("The max number is: " + a.Max());
    System.out.println("The max character is: " + b.Max());
  }
}

위의 예에서 우리는 먼저 Max()라는 추상 메서드를 사용하여 FindMinMax라는 인터페이스를 만들었습니다. 그 후 인터페이스에서 해당 추상 메서드를 정의한 MyClass라는 또 다른 클래스를 만들었습니다.

마지막으로, 하나의 정수 배열과 하나의 문자 배열을 선언한 GenericInterface 클래스를 만들었습니다. 그런 다음 두 개의 개체를 만들었습니다. 하나는 숫자용이고 다른 하나는 문자용입니다.

마지막으로 결과를 출력으로 인쇄했습니다. 위의 코드를 실행하면 아래와 같은 출력이 표시됩니다.

The max number is: 10
The max character is: r

중요한 참고 사항은 바인딩을 설정한 후에는 implements 절을 사용하여 다시 명시할 필요가 없다는 것입니다.

제네릭 인터페이스를 사용하여 클래스를 구현하는 경우 모든 클래스는 인터페이스에 전달된 유형 매개변수를 사용할 수 있도록 제네릭이어야 합니다.

여기에서 공유되는 코드 예제는 Java로 되어 있으며 시스템에 Java가 포함되어 있지 않은 경우 환경에 Java를 설치해야 합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn