Java >> Java tutorial >  >> Tag >> private

Private metoder i Java-grænseflader

1. Oversigt

Fra Java 9 kan private metoder føjes til grænseflader i Java . Lad os i denne korte vejledning diskutere, hvordan vi kan definere disse metoder og deres fordele.

2. Definering af private metoder i grænseflader

Private metoder kan implementeres statiske eller ikke-statisk . Dette betyder, at vi i en grænseflade er i stand til at skabe private metoder til at indkapsle kode fra begge standard og statisk offentlige metodesignaturer.

Lad os først se på, hvordan vi kan bruge private metoder fra standardgrænseflademetoder:

public interface Foo {

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

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

bar() er i stand til at gøre brug af den private metode baz() ved at kalde det fra dets standardmetode.

Lad os derefter tilføje en statisk defineret privat metode til vores Foo grænseflade:

public interface Foo {

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

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

Inden for grænsefladen kan andre statisk definerede metoder gøre brug af disse private statiske metoder.

Lad os endelig kalde de definerede standard- og statiske metoder fra en konkret klasse:

public class CustomFoo implements Foo {

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

Outputtet er strengen "Hej verden!" fra opkaldet til bar() metode og "Hej statisk verden!" fra opkaldet til buzz() metode.

3. Fordele ved private metoder i grænseflader

Lad os tale om fordelene ved private metoder, nu hvor vi har defineret dem.

Berørt i det foregående afsnit er grænseflader i stand til at bruge private metoder til at skjule detaljer om implementering fra klasser, der implementerer grænsefladen. Som et resultat er en af ​​hovedfordelene ved at have disse i grænseflader indkapsling.

En anden fordel er (som med private metoder generelt), at der er mindre duplikering og mere genbrugelig kode tilføjet til grænseflader til metoder med lignende funktionalitet.

4. Konklusion

I denne tutorial har vi dækket, hvordan man definerer private metoder inden for en grænseflade, og hvordan vi kan bruge dem fra både statiske og ikke-statiske sammenhænge. Den kode, vi brugte i denne artikel, kan findes på GitHub.


No
Java tag