logo

Vrste vmesnikov v Javi

V Javi so vmesniki bistveni, ko gre za nastavitev razrednih pogodb in zagotavljanje doslednosti kode na področju programiranja Jave. Služi kot načrt razreda z orisom številnih metod, ki jih mora izvajalni razred izvajati. Abstraktnost, modularnost in vzdržljivost njihove kode lahko razvijalci dosežejo z uporabo vmesnikov. The različne vrste vmesnikov v Javi bomo obravnavali v tem razdelku.

Marker vmesniki

Vmesniki označevalcev, pogosto imenovani vmesniki oznak, so vmesniki brez deklariranih metod. Preprosto povedano, služijo kot označevalci, ki sporočajo, da ima razred, ki implementira vmesnik označevalcev, določene lastnosti ali kvalitete. Izvajalno okolje Java in druga orodja uporabljajo te API-je za zagotavljanje dodatnih funkcij ali podatkov. Serializable, Cloneable in Remote so nekateri primerki označevalnih vmesnikov v Javi.

Funkcionalni vmesniki

Kot del izboljšav lambda izrazov in funkcionalnega programiranja so bili Javi 8 dodani funkcionalni vmesniki. Vmesnik, ki ima natanko eno abstraktno metodo, naj bi bil funkcionalen. Poleg tega so možne privzete in statične metode. Številne zmožnosti funkcionalnega programiranja Jave, kot so lambda izrazi in reference metod, uporabljajo funkcionalne vmesnike. Predikat, potrošnik, funkcija in dobavitelj je le nekaj vgrajenih funkcijskih vmesnikov, ki jih ponuja paket java.util.function.

Vmesniki enotne abstraktne metode (SAM).

Pred Javo 8 so obstajale določene vrste funkcionalnih vmesnikov, imenovanih vmesniki SAM. Ti vmesniki imajo lahko poljubno število privzetih ali statičnih metod, vendar samo eno abstraktno metodo. Runnable, Comparator in MouseListener je nekaj API-jev pred Javo 8, ki vsebujejo primere vmesnikov SAM. Z uvedbo funkcionalnih vmesnikov v Javi 8 se lahko vmesniki SAM uporabljajo z lambda izrazi in se obravnavajo kot funkcionalni vmesniki.

vrsta v Javi

Normalni vmesniki

Najbolj razširjena vrsta vmesnikov v Javi so običajni vmesniki. Imajo eno ali več abstraktnih metod, ki jih morajo implementirati razredi, ki implementirajo vmesnik. Začenši z Javo 8 lahko običajni vmesniki dodatno vsebujejo privzete in statične metode. Običajne vmesnike razvijalci uporabljajo za določanje pravil ali zahtev, ki jih morajo upoštevati razredi. Seznam, Set in Map, ki jih najdete v paketu java.util, so primeri tipičnih vmesnikov Java.

Vmesniki več dedovanja

Java dovoljuje razredom implementacijo več vmesnikov, vendar ne podpira dedovanja več razredov. Vmesniki, ki jih implementira razred za istočasno definiranje številnih pogodb ali dedovanja vedenja, so znani kot vmesniki večkratnega dedovanja. Razred lahko ponudi funkcionalnost, ki jo opisuje vsak vmesnik z implementacijo več vmesnikov. S pomočjo te funkcionalnosti lahko razvijalci ponovno uporabijo kodo in povečajo prilagodljivost svojih idej.

Tu so primeri kode za vsako vrsto vmesnika v Javi skupaj z njihovim ustreznim izhodom:

sortiraj seznam matrik java

Marker vmesniki

MarkerInterfaceExample.java

 import java.io.Serializable; // Marker Interface interface MyMarkerInterface extends Serializable { } public class MarkerInterfaceExample { public static void main(String[] args) { MyMarkerInterface obj = new MyMarkerInterface() { }; System.out.println(obj instanceof Serializable); // true } } 

Izhod:

 true 

Funkcionalni vmesniki

FunctionalInterfaceExample.java

 import java.util.function.Predicate; public class FunctionalInterfaceExample { public static void main(String[] args) { Predicate isLengthGreaterThan5 = str -> str.length() > 5; System.out.println(isLengthGreaterThan5.test('Hello')); // false System.out.println(isLengthGreaterThan5.test('OpenAI')); // true } } 

Izhod:

 false true 

Vmesniki enotne abstraktne metode (SAM):

SAMInterfaceExample.java

 interface MySAMInterface { void performAction(); } public class SAMInterfaceExample { public static void main(String[] args) { MySAMInterface obj = () -> System.out.println('Performing action'); obj.performAction(); // Performing action } } 

Izhod:

znak.primerjaj java
 Performing action 

Normalni vmesniki

NormalInterfaceExample.java

 import java.util.List; import java.util.ArrayList; interface MyInterface { void printMessage(); } class MyClass implements MyInterface { @Override public void printMessage() { System.out.println('Hello, World!'); } } public class NormalInterfaceExample { public static void main(String[] args) { MyInterface obj = new MyClass(); obj.printMessage(); // Hello, World! } } 

Izhod:

naključno število med 1 in 10
 Hello, World! 

Vmesniki več dedovanja:

MultipleInheritanceInterfaceExample.java

 interface Interface1 { void method1(); } interface Interface2 { void method2(); } class MyClass implements Interface1, Interface2 { @Override public void method1() { System.out.println('Method 1'); } @Override public void method2() { System.out.println('Method 2'); } } public class MultipleInheritanceInterfaceExample { public static void main(String[] args) { MyClass obj = new MyClass(); obj.method1(); // Method 1 obj.method2(); // Method 2 } } 

Izhod:

 Method 1 Method 2 

Ti primeri prikazujejo uporabo in obnašanje različnih vrst vmesnikov v Javi. Vsak delček kode lahko zaženete posebej, da opazujete ustrezen rezultat.

Skratka, vmesniki Java ponujajo močno metodo za določanje pogodb in doseganje modularnosti kode. Vmesniki so bistveni za razvoj Jave, ne glede na to, ali gre za označevalne vmesnike, ki označujejo posebne lastnosti, funkcionalne vmesnike, ki omogočajo funkcionalno programiranje, običajne vmesnike, ki definirajo pogodbe, ali več vmesnikov dedovanja, ki združujejo več pogodb. Razvijalci Java so bolje opremljeni za izdelavo jasne, razširljive kode, ko poznajo različne tipe vmesnikov in njihove funkcije.