1. 개요

Java 9부터 Java 의 인터페이스에 개인 메서드 를 추가할 수 있습니다 . 이 짧은 사용방법(예제)에서 이러한 방법과 그 이점을 정의하는 방법에 대해 논의해 보겠습니다.

2. 인터페이스에서 개인 메서드 정의하기

개인 메서드는 정적 또는 비 정적 으로 구현될 수 있습니다 . 이것은 인터페이스에서 기본정적 공용 메서드 서명 모두에서 코드를 캡슐화하는 개인 메서드를 만들 수 있음을 의미합니다.

먼저 기본 인터페이스 메서드에서 개인 메서드를 사용하는 방법을 살펴보겠습니다.

public interface Foo {

    default void bar() {
        System.out.print("Hello");
        baz();
    }

    private void baz() {
        System.out.println(" world!");
    }
}

bar() 는 기본 메서드에서 호출 하여 개인 메서드 baz() 를 사용할 수 있습니다.

다음으로 Foo 인터페이스 에 정적으로 정의된 private 메소드를 추가해 보겠습니다 .

public interface Foo {

    static void buzz() {
        System.out.print("Hello");
        staticBaz();
    }

    private static void staticBaz() {
        System.out.println(" static world!");
    }
}

인터페이스 내에서 다른 정적으로 정의된 메서드는 이러한 개인용 정적 메서드를 사용할 수 있습니다.

마지막으로 구체적인 클래스에서 정의된 기본 및 정적 메서드를 호출해 보겠습니다.

public class CustomFoo implements Foo {

    public static void main(String... args) {
        Foo customFoo = new CustomFoo();
        customFoo.bar();
        Foo.buzz();
    }
}

출력은 "Hello world!" 문자열입니다. bar() 메서드 호출 과 "Hello static world!" Buzz() 메서드 호출에서 .

3. 인터페이스에서 개인 메서드의 이점

이제 정의한 private 메소드의 이점에 대해 이야기해 보겠습니다.

이전 섹션에서 다룬 인터페이스는 개인 메서드를 사용하여 인터페이스를 구현하는 클래스에서 구현에 대한 세부 정보를 숨길 수 있습니다. 결과적으로 인터페이스에 이러한 기능을 사용하는 주요 이점 중 하나는 캡슐화입니다.

또 다른 이점은 (일반적으로 개인 메서드와 마찬가지로) 유사한 기능을 가진 메서드의 인터페이스에 중복이 적고 재사용 가능한 코드가 더 많이 추가된다는 것입니다.

4. 결론

이 사용방법(예제)에서는 인터페이스 내에서 개인 메서드를 정의하는 방법과 정적 및 비정적 컨텍스트 모두에서 사용하는 방법을 다루었습니다. 이 기사에서 사용한 코드는 GitHub 에서 찾을 수 있습니다 .

Generic footer banner