JavaRush /Java Blog /Random-TK /Java-da interfeýs
vinsler
Dereje

Java-da interfeýs

Toparda çap edildi
Belli bir haýyş bilen birine düşünip bolmajak bir zady düşündirmek maksadym bolmasa, erbet hekaýatçy däl, şonuň üçin ýönekeý zatlara düşünýärin we bir zat üçin şu ýerde ýazaryn. Ilki bilen sorag bermegiň, soň bolsa nädip etmelidigini aýtmagyň JavaRush öwrediş mysalyna eýeremok. Ilki bilen aýtmagy, soňam aýtmak, ilki görkezmek, soň düşündirmek ýaly soraýaryn.
Java-da interfeýs - 1
BS: Hereketler == özüni alyp barş, sinonim hökmünde kabul ediň, hereketler has dogry düşünilýär, elmydama işjeň bir zat, özüni alyp barşyňyz hiç zat görkezip bilmez.

interfeýs - interfeýs

Bu näme? Mysal üçin interfeýs sanawy (umumylyklar bilen):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Adaty çig mal (CRUD-dan: Dörediň, okaň, täzeläň, pozuň) interfeýsi. Alada etme, hemme zat gaty ýönekeý. Bu interfeýs, köp maglumat bazasy bilen işlemegiň aşakdaky ýörelgä esaslanýandygyny aňladýar: ýazgy goşmaly, ýazgyny täzelemeli, ähli ýazgylary pozmaly we tapmaly. Muny ýene 100 gezek görersiňiz we şol bir interfeýsi şol bir gezek diýen ýaly ýazarsyňyz. Jemgyýet tarapyndan bellendi, sebäbi synp tarapyndan durmuşa geçirilmeli. Bir synp tarapyndan durmuşa geçirilmegi nämäni aňladýar ? Hemme zat gaty ýönekeý: interfeýsiň ähli usullaryny beýan etmeli. Synpda durmuşa geçirmegiň iň ýönekeý mysaly:
void add (T t) {
	bookstore.add(t);
}
T t ýerine belli bir umumylyk çalşylar. Gysgaça aýdylanda, bu üýtgeýjiniň TYPE, şonuň üçin köplenç T = Type diýilýär. Mysalymyzda munuň şeýle bolup biljekdigini aýdalyň:
void add (Book book) {
	bookstore.add(book);
}
Elbetde, Kitap kitabynyň ýerine ýerine ýetirmek üçin zerur bolan üýtgeýjini çalşyp bilersiňiz. Düşünmek üçin teoretiki taýdan T = Obýekt diýip göz öňüne getirip bilersiňiz, Java-daky hemme zat Obýekt bolany üçin, şol ýerdäki synplaryňyzy / üýtgeýänleriňizi hem kesgitläp bilersiňiz. Onlyeke-täk kynçylyk soň ýüze çykar - synp nol bolsa kadadan çykmalar we ş.m. Öz sözleri bilen aýdylanda, belli bir özüňi alyp barşyň böleklerine bölmek arkaly obýektleriň arasyndaky gatnaşyklary kesgitleýän belli bir programma gurluşy. Interfeýsiň maksady, synp tarapyndan durmuşa geçirmek üçin işlemegi kesgitlemek. Methodagny, usul gollarynyň beýany. Interfeýsiň içinde gaýdyp gelýän we giriş bahalaryny görkezýän usullaryň atlary bar we hut şu. Dogrusy, ol ýerde käbir üýtgeýjileri belläp bilersiňiz, ýöne derrew aç-açan umumy statiki finala öwrülýär we programmanyň islendik böleginden girip bolýar. Interfeýs hereketleri suratlandyrýar, şonuň üçin şol bir hereketler içinde bar, ýagny wezipeleri ýa-da usullary. Bu näme üçin zerur? Bu nämäni aňsatlaşdyrýar ýa-da haýsy artykmaçlyklary berýär? Hereketleriň we özüni alyp barşyň beýanyny ýönekeýleşdirmek. Näme etmelidigimizi aýdýarys, ýöne her synp muny nädip etmelidigini durmuşa geçirýär. Uly taslamalarda wagt tygşytlaň. Interfeýsler haýsydyr bir meseläni ýerine ýetirmelidigimizi bilýän ýagdaýlarymyzda döredilýär, ýöne muny nädip etmelidigi üýtgäp biler. Interfeýs hereketleriň atlaryny suratlandyrýar - bu diňe käbir abstraksiýanyň ugry. Şeýle hem usullar we meýdanlar bolmadyk interfeýsler bolup biler, meselem, Cloneable, Remote we ş.m. ýaly markerler. Geliň, her kimiň iň gowy görýän ulagyndan mysal alalyň. Ondaky interfeýs, ruluň ýa-da hereket ugrunyň, tizligiň ýokarlanmagy, galan benziniň we ş.m. awtoulagyň bolup biläýjek hereketlerini suratlandyrar. .Agny, islendik awtoulagyň bolup biläýjek hereketleri. Başga bir söz bilen aýdylanda, zaýalanmak jeňňeline ilkinji awtoulagyň döredilmeginiň iň pes derejesine düşýäris we öz beýnimiz bilen nädip döredilendigini we nämäniň bardygyny anyklaýarys. Elbetde, muny abstrakt we diňe hereketler üçin suratlandyrýarys. Ilkinji awtoulagda näme bardy? Rul barmy? Bu, bir ýere öwrülip, ​​ruluň / hereketiň ugruny aňladýardy. Tigirler barmydy? Hawa, bu haýsydyr bir tizlikde sürýändigimi, tizligiň üýtgemegini aňladýar. Bu tutuş interfeýs. Generalöne, umuman aýdylanda, käbir hereketleri durmuşa geçirmek üçin interfeýsler döredilýär. Bular. Başga pikir edip biljek zatlaryňyzdan has anyk programmalar üçin programma ýazýarys. Şonuň üçin interfeýsleriň özlerinde has düşnükli we has anyk usullar bolar. Elbetde mümkin boldugyça abstrakt bolar. Interfeýsler synp hökmünde biri-birinden miras galyp biler.
interface MyInterface extends NotMyinterface;
Interfeýsler sapaklarda amala aşyrylýar. Isleýşiňiz ýaly köp interfeýsi durmuşa geçirip bilersiňiz. Mirasdan tapawutlylykda, diňe birinden miras alyň.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Bular. käbir hereketler etdik, olara atlar, giriş maglumatlary berdik, maglumatlary gaýtardyk, bularyň hemmesini interfeýsde ýazdyk, soň bir synp döretdik we interfeýsimizi bu klasa goşduk. bu synpda interfeýsimizi amala aşyrdy. Mundan başga-da, interfeýsde beýan edilen ähli usullar / funksiýalar durmuşa geçirilmelidir. Bu usulyň öňünden defolt sözüni goşmak we ýerine ýetirişini synp ýaly gönüden-göni ýazmak arkaly interfeýsiň özünde edilip bilner. Bu Java-yň 8-nji wersiýasy bilen mümkin boldy. Bu interfeýsi durmuşa geçirjek synpda hem edip bolýar. Dogrusy, interfeýsi ýazdyk, synpda durmuşa geçirdik, synpda durmuşa geçirdik, synap görüp bileris. Şeýle hem interfeýslerde okap bilersiňiz:
  • Statik usullar.
  • Hususy usullar. (kod gaýtalamak)
  • Üýtgeýjiler / üýtgewsizler.
  • Içerki interfeýsler.
Emma muny soňrak etmek has gowudyr we kelläňizi aşa köp doldurmak hem zyýanly. Gyzykly sorag, “Volvo” näme? Synp ýa-da interfeýs?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Interfeýslerden başga-da, Abstrakt synplar we synplar hakda dowam etmeli. Belki soňrak, ýene iki sagat mugt wagtym bar. ))) PS: ysigitler, ýazgyda ýa-da premýer-ministrde ähli tankytlary soraýaryn, her kimiň bardygyna doly düşünýärin))) we elmydama eşitmek isleýärin, sebäbi bu birneme gowulaşmagyň sebäbi we ýene öňe gitmegi dowam etdiriň. Munuň bilen hemmäňize köp sag boluň we programmirlemekde üstünlik arzuw edýärin. ))))
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION