logo

„Java“ sąsajų tipai

„Java“ sąsajos yra labai svarbios nustatant klasių sutartis ir garantuojant kodo nuoseklumą „Java“ programavimo srityje. Jis tarnauja kaip klasės planas, nurodant daugybę metodų, kuriuos įgyvendinančioji klasė turi įgyvendinti. Kūrėjai gali pasiekti savo kodo abstrakciją, moduliškumą ir prižiūrimumą naudodami sąsajas. The įvairių tipų „Java“ sąsajos bus aptarta šiame skyriuje.

Žymeklių sąsajos

Žymeklių sąsajos, dažnai vadinamos žymų sąsajomis, yra sąsajos be jokių deklaruotų metodų. Paprasčiau tariant, jie tarnauja kaip žymekliai, signalizuojantys, kad klasė, kuri įgyvendina žymeklio sąsają, turi tam tikrų savybių ar savybių. „Java“ vykdymo aplinka ir kiti įrankiai naudoja šias API, kad pateiktų papildomų funkcijų arba duomenų. Serializuojamas, klonuojamas ir nuotolinis yra kai kurie žymeklio sąsajų atvejai „Java“.

Funkcinės sąsajos

Tobulinant lambda išraiškas ir funkcinį programavimą, į „Java 8“ buvo įtrauktos funkcinės sąsajos. Sąsaja, turinti būtent vieną abstraktų metodą, yra funkcionali. Be to, galimi numatytieji ir statiniai metodai. Daugelis „Java“ funkcinių programavimo galimybių, tokių kaip lambda išraiškos ir metodų nuorodos, naudoja funkcines sąsajas. Predikatas, vartotojas, funkcija ir tiekėjas yra tik keletas integruotų funkcinių sąsajų, kurias siūlo java.util.function paketas.

Vieno abstrakčiojo metodo (SAM) sąsajos

Iki Java 8 buvo tam tikrų rūšių funkcinės sąsajos, vadinamos SAM sąsajomis. Šios sąsajos gali turėti bet kokį numatytųjų arba statinių metodų skaičių, bet tik vieną abstraktų metodą. Runnable, Comparator ir MouseListener yra kelios prieš „Java 8“ versijos API, kuriose yra SAM sąsajos pavyzdžių. „Java 8“ įdiegus funkcines sąsajas, SAM sąsajas galima naudoti su lambda išraiškomis ir laikyti funkcinėmis sąsajomis.

Madhubala

Įprastos sąsajos

Labiausiai paplitusios „Java“ sąsajos yra įprastos sąsajos. Jie turi vieną ar daugiau abstrakčių metodų, kuriuos turi įgyvendinti klasės, kurios įdiegia sąsają. Pradedant nuo „Java 8“, įprastose sąsajose gali būti papildomai numatytieji ir statiniai metodai. Įprastas sąsajas kūrėjai naudoja norėdami nurodyti taisykles ar reikalavimus, kurių turi laikytis klasės. Sąrašas, rinkinys ir žemėlapis, kurie visi yra java.util pakete, yra tipiškų Java sąsajų pavyzdžiai.

Kelios paveldėjimo sąsajos

sql kelių lentelių pasirinkimas

„Java“ leidžia klasėms įdiegti kelias sąsajas, bet nepalaiko kelių klasių paveldėjimo. Sąsajos, kurias klasė įgyvendina, kad vienu metu apibrėžtų daugybę sutarčių arba paveldėtų elgesį, yra žinomos kaip daugialypės paveldėjimo sąsajos. Klasė gali pasiūlyti kiekvienos sąsajos apibrėžtas funkcijas, įdiegdama kelias sąsajas. Naudodamiesi šia funkcija, kūrėjai gali pakartotinai naudoti kodą ir padidinti savo idėjų pritaikomumą.

Čia pateikiami kiekvieno „Java“ sąsajos tipo kodo pavyzdžiai kartu su atitinkama išvestimi:

Žymeklių sąsajos

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 } } 

Išvestis:

 true 

Funkcinės sąsajos

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 } } 

Išvestis:

 false true 

Vieno abstrakčiojo metodo (SAM) sąsajos:

SAMIinterfaceExample.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 } } 

Išvestis:

sutrumpinti ir ištrinti skirtumą
 Performing action 

Įprastos sąsajos

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! } } 

Išvestis:

tinklo topologijos
 Hello, World! 

Kelios paveldėjimo sąsajos:

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 } } 

Išvestis:

 Method 1 Method 2 

Šie pavyzdžiai parodo skirtingų tipų sąsajų naudojimą ir elgseną programoje „Java“. Galite paleisti kiekvieną kodo fragmentą atskirai, kad galėtumėte stebėti atitinkamą išvestį.

Apibendrinant galima pasakyti, kad „Java“ sąsajos siūlo galingą metodą sutartims nurodyti ir kodo moduliavimui pasiekti. Sąsajos yra būtinos „Java“ kūrimui, nesvarbu, ar tai žymeklio sąsajos, nurodančios specifinius bruožus, funkcinės sąsajos, įgalinančios funkcinį programavimą, įprastos sąsajos, apibrėžiančios sutartis, ar kelios paveldėjimo sąsajos, sujungiančios kelias sutartis. „Java“ kūrėjai yra geriau pasirengę sukurti aiškų, išplečiamą kodą, kai žino apie įvairius sąsajų tipus ir jų funkcijas.