Satura rādītājs
Šī ir trešā daļa no apmācību sērijas, kas vērsta uz Java valodas pamattēmu pārskatīšanu, lai sagatavotu lasītāju pavasara ietvara izmantošanai. Šīs apmācības sērijas pirmo daļu var iegūt šeit, bet otro daļu - šeit. Šajā apmācībā mēs runāsim par to, kas ir saskarnes, kas ir programmēšanas saskarnes, tās priekšrocības un kā tas ir saistīts ar pavasara ietvaru.Mēs jau esam redzējuši mantojuma un polimorfisma jēdzienus, un saskarnes ir Java klases veids, kam raksturīga noteikta funkcionalitāte. Visbiežāk saskarnes ir klase, kas sastāv no metodēm bez ieviešanas.
interfeiss Drawable {public void draw (); public void selectColor (Stīgu krāsa); }
Saskarnes vienmēr ir publiskas un abstraktas neatkarīgi no tā, vai esat iestatījis modifikatorus vai nē, un attēlo veidu, kā citi objekti mijiedarbojas ar objektu, kas tos īsteno. Tas var likties sarežģīti, bet tas ir vienkārši: ja klase ievieš saskarni, tā ir spiesta piešķirt pamattekstu atbilstošajām metodēm. Tas nozīmē, ka, kamēr objekts īsteno saskarni, jūs varat būt pilnīgi pārliecināts, ka šim objektam ir metodes, kas atbilst minētajam interfeisam.
Java vidē saskarnes tiek ieviestas ar atslēgvārdu "īsteno", un klase var ieviest vienu vai vairākas saskarnes, bet ir spiesta pārslogot metodes, kas bez izņēmuma atbilst katrai saskarnei, pretējā gadījumā kompilators radīs kļūdu.
publiskās klases Kvadrāts īsteno Drawable {public String borderColor; publiska stīgu aizpildīšanas krāsa; public int high; publisks int platums; @Override public void draw () {System.out.println ("Kvadrāts ir uzzīmēts ar platumu" + platums + ", augstumu" + augstums + "un krāsu" + aizpildījuma krāsa); } @Override public void selectColor (String color) {fillcolor = krāsa; }}
public class Line īsteno Drawable {public String strokecolor; garā publiskā virkne; @Override public void draw () {System.out.println ("Zīmēt līniju" + garš); } @Override public void selectColor (String color) {strokecolor = krāsa; }}
Šajā gadījumā saskarne ļauj bez problēmām manipulēt ar jebkuru objektu skaitu, izmantojot polimorfisma jēdzienu, ko mēs redzējām otrajā daļā, un šiem objektiem nav jābūt savstarpēji saistītiem, izņemot veidu, kādā citas klases mijiedarbojas ar viņiem. Mūsu piemēra gadījumā vēlāk jums varētu būt piecstūra, ainavas vai pat ArtWork objekti, kas īsteno zīmējamo saskarni, un tos visus varētu apstrādāt jebkura klase, kas var manipulēt ar zīmējamo saskarni.
importēt java.awt.Color; importēt java.util. *; public class DrawThings {// Šī klase ģenerē nejauši uzzīmējamus objektus un zīmē tos nejaušās krāsās public static void main (String [] args) {List l = new ArrayList (); par (int i = 0; i0,5) {l.add (new Line ()); } cits {l.add (new Square ()); }} par (zīmējams d: l) {pludiņš H, S, B; H = (peldēt) Math.random (); S = (peldēt) Math.random (); B = (peldēt) Math.random (); Krāsa c = Color.getHSBColor (H, S, ; d.izvēlētiesKrāsa (String.valueOf (c)); d. izdarīt (); }}}
Kā redzēsit piemērā, galveno metodi var iedalīt divās galvenajās metodēs - tajā, kas aizpilda zīmējamo objektu sarakstu, un tajā, kas zīmē objektus sarakstā. Es aicinu jūs izmantot šīs nodarbības un redzēt, kā tās uzvedas, pirms pāriet uz nākamo sadaļu, kur mēs redzēsim, kāpēc jūs varētu vēlēties programmēt saskarni.
Galu galā saskarne ir tāda pati kā tās īstā versija, tastatūra un pele ir saskarnes, ar kurām jūs mijiedarbojaties ar datoru, iekšējā informācija par to, kā tiek veiktas tādas darbības kā “Noklikšķināt” vai “Nospiediet taustiņu Esc”. datora saskarne ir paslēpta no jums un jums nav nepieciešama. Svarīgi ir tikai tas, ka, izmantojot šo saskarni, varat nospiest taustiņu Esc un noklikšķināt.
Kad esat pārskatījis saskarni, es ceru, ka jūs varat saprast, cik svarīgi ir to programmēt. Būtībā jūs koncentrējaties uz savu programmu izveidi, domājot par saskarni, kuru izmantosit, nevis tik daudz par objektu, kas jums tiktu nodots kā parametrs. Piemēra gadījumā, ko līdz šim esam apstrādājuši, to var pārrakstīt šādi:
importēt java.awt.Color; importēt java.util. *; public class DrawThings {// Šī klase ģenerē nejauši uzzīmējamus objektus un zīmē tos nejaušās krāsās public static void main (String [] args) {List l = new ArrayList (); fillList (l); drawList (l); } public static void fillList (List l) {for (int i = 0; i0.5) {l.add (new Line ()); } cits {l.add (new Square ()); }}} public static void drawList (List l) {for (Drawable d: l) {float H, S, B; H = (peldēt) Math.random (); S = (peldēt) Math.random (); B = (peldēt) Math.random (); Krāsa c = Color.getHSBColor (H, S, ; d.izvēlētiesKrāsa (String.valueOf (c)); d. izdarīt (); }}}
Protams, es atdalīju tikai galvenās metodes daļas 2 bērnu metodēs, taču skaistums ir tāds, ka šīs 2 metodes saglabā neatkarību viena no otras un saglabā neatkarību no zīmējamā interfeisa ieviešanas. Ja es gribētu mainīt vienu no divām metodēm, otra vismazāk netiktu ietekmēta, ja parādītos Pentagona un ArtWork ieviešana, jūs varētu tos pievienot, veidojot metodi fillList (List l) un drawList ( List) metode. L) neprasa nekādas izmaiņas, jo tā ir ieprogrammēta saskarnē.
+ SvarīgiAbas metodes var piederēt dažādām klasēm, tās var apstrādāt dažādās vidēs, un tās pat nekad nevar zināt, ar kādu objektu tās īsti strādā, bet, kamēr tās ieviesīs zīmējamo saskarni, tās varēs ar to manipulēt un spēt izpildīt 2 metodes, kas ir saistītas ar šo saskarni.
Es zinu, ka šobrīd tas šķiet šausmīgi sarežģīti, bet vēlāk mēs redzēsim, kā Spring apstrādā visu, kas ieprogrammēts saskarnē, un mēs pat redzēsim, kā uz aspektu orientēta programmēšana un tā izpratne mums daudz palīdzēs saprast, kā darbojas pavasaris.
Es ceru, ka mēs turpināsim ar šīm apmācībām katru nedēļu, neaizmirstiet atstāt savus komentārus līdz nākamajai reizei!Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu