În unele situații, procesul de dezvoltare de software, este necesar, atunci când diferite grupuri de programatori trebuie să „negocieze“ cu privire la modul în care programele lor interacționează. Fiecare grup ar trebui să fie în măsură să scrie codul nu contează, în conformitate cu alte trupa sa. Interfața este „contractul“. Am folosit interfețe în adnotările de clasă în Java.
În această lecție le vom examina în detaliu: ceea ce fac ei, așa cum declară ei, etc.
Imaginați-vă un viitor în cazul în care vehiculele conduse de calculatoare, fără intervenție umană. Producătorii de automobile a scrie software-ul (în Java, desigur 🙂), care controlează mașina - stop, du-te, rândul său, etc. Alte dezvoltatorii de a face sisteme GPS care primesc date (Global Positioning System), și de a folosi aceste date pentru a controla masina. Producătorii de automobile publică interfață standard care descrie metode pentru a controla mașina. Astfel, dezvoltatorii terți pot ști ce metodă este invocată pentru a obține masina pentru a muta, și producătorii de automobile pot schimba punerea în aplicare internă a produsului în orice moment. Nici unul dintre grupurile de dezvoltatori nu știu cum să scrie programele lor.
interfețe Java
Semnăturile metodelor sunt declarate fără paranteze și se termină cu punct și virgulă. Pentru a utiliza interfața, trebuie să scrie o clasă care va implementa interfața dumneavoastră. Clasa care implementează interfața trebuie să descrie toate metodele declarate în interfața. De exemplu:
In exemplul de mai sus - producătorii de automobile a scrie software-ul în felul lor, dar cu aceeași interfață. dezvoltatorilor terți - clienții de interfață pot scrie propriile lor software folosind metode declarate în interfața.
interfețe API ca
Exemplu masina arată cum interfețe poate fi folosit ca un API (Application Programming Interface) sau o interfață de programare a aplicațiilor. Folosind API - o practică comună în dezvoltarea de software comercial. De obicei, companiile de software vinde software care conține un set de metode pe care alte companii doresc să utilizeze în produsele lor.
Interfețe și moștenire multiplă
Interfețe joacă un rol mai important în limbajul programmirovniya Java. Java nu permite moștenire multiplă, dar interfețe oferă o alternativă. În Java, o clasă poate moșteni numai dintr-o singură clasă, dar poate implementa mai multe interfete. Astfel, obiectele pot avea mai multe tipuri: de tip propria lor clasă și tipuri de interfețe implementate. Când creați o clasă caracteristică ca nume de tip poate fi specificat în interfața pusă în aplicare de clasa. Cu alte cuvinte, în cazul în care o clasă implementează o interfață, referirea la un obiect al acestei clase poate fi atribuită la o variabilă de interfață - variabila ca tipul care indică numele de interfață corespunzătoare.
Publicul Modificatorul de acces este că interfața poate fi utilizată de către orice clasă în orice pachet. Dacă nu specificați interfață ca public, acesta va fi disponibil numai ca parte a pachetului lor. O interfață poate moșteni de la alte interfețe ca clase pot moșteni dintr-o altă clasă. Spre deosebire de clase, interfețe poate moșteni orice număr de alte interfețe.
Implementarea unei interfețe
O interfață simplă
Luați în considerare o interfață care definește metoda de a compara obiecte.
Pentru a putea compara obiecte, noi trebuie să pună în aplicare interfață relatable. Orice clasă poate implementa interfata relatable. în cazul în care există o modalitate de a compara obiecte. Pentru siruri de caractere, puteți compara numărul de caractere pentru cărți - numărul de pagini pentru elevi - greutate, etc. Pentru forme geometrice plate caracteristică excelent este zona pentru tridimensională - volum. Toate aceste clase pot pune în aplicare metoda isLargerThan (). Dacă știți că clasa implementeaza interfata relatable. atunci puteți compara cu ușurință obiectele din această clasă.
Punerea în aplicare interfață relatable
Scrie un dreptunghi de clasă. Relatable implementeaza interfata.
Din moment ce clasa RectanglePlus implementeaza relatable. dimensiunea oricăror două tipuri RectanglePlus de obiecte pot fi comparate.
Metoda isLargerThan preia ca argumente obiecte de tip spectatorii se identifică. La punerea în aplicare a metodei în exemplul de mai sus, vom folosi o distributie, deoarece compilatorul nu înțelege că, altele - tipul de obiect și apelul RectanglePlus other.getArea () rezultatele metodei într-o eroare, fără o distributie.
Utilizarea interfeței ca tip
Când declara o interfață, declarați un nou tip de date de referință. Puteți utiliza numele de interfață cu tipul de date precum și orice alte tipuri. Dacă declarați o variabilă de interfețe de tip, atunci se poate atribui un obiect din orice clasă care implementează această interfață.
Luați în considerare acest exemplu - o metodă care urmărește un obiect mai mare dintre cele două obiecte de orice clasă care implementează interfața relatable:
Aducerea object1 de tipul relatable. vom face posibilă pentru a contesta metoda isLargerThan.
Idem pentru orice clasă care implementează interfața cu utilizatorul de relatable, poate realizvat metode:
interfețe Supracomanda
Să presupunem că ați scris interfață doit:
Să presupunem mai târziu, ai vrut să adăugați o a treia metodă:
Dacă efectuați această modificare, toate clasele care implementează această interfață se va rupe, deoarece ei vor înceta să-l pună în aplicare.
Încercați să evitați aceste schimbări și cred că interfața este complet original. Dar, de multe ori, în practică, este imposibil și din această situație poate fi de a defini o nouă interfață DoItPlus. care se extinde doit:
Acum interfața dvs., utilizatorii pot începe să utilizați noua interfață sau să rămână cu vechi fără durere.
A se vedea, de asemenea,
- clase imbricate și interioare în Java. partea 2
- clase imbricate și interioare în Java. partea 1
- Siruri de caractere în Java
- șir de funcții de management pentru a lucra cu siruri de caractere în Java. partea 2
- Bazele de expresii regulate în Java. partea 3
- șir de funcții de management pentru a lucra cu siruri de caractere în Java.
- Expresii regulate în Java. partea 2
- Faceti o cerere de frumos JavaFX folosind CSS