Näme üçin interfeýsler gerek? Näme üçin interfeýs mirasy zerur? Polimorfizm näme üçin zerur? Interfeýs ýasamagy okaýan we düşünýänler üçin, ýöne sebäbine düşünmedikler üçin.
Düşündiriş: Bu makalada we ondan soňky bölümlerde synplaryň we usullaryň atlary rus dilinde berler.
Obýekte gönükdirilen programmirleme (OOP) prinsipleri barada aýdylanda: polimorfizm, miras we encapsulation, hakyky dünýädäki meňzeşlikleri ulanmak peýdalydyr. OOP-nyň uly artykmaçlygy, hakyky älemiň bir bölegini bir programmada simulasiýa etmekdir. Iwanow maşgalasyna nusga alalyň: Kaka , Eje we oglan Petýa . Petýa kakasyndan çaý içip otyrka endik etdi, ejemden bolsa okaýarka dodaklaryny yzarlamak endigini miras aldy . Bu ýagdaýy bir programma durmuşa geçirmäge synanyşsak, üç synp bilen gutararys:class Папа
class Мама
class Петя
Kakam bilen ejemiň Pite geçmeli endikleri bar . Endikler haýsydyr bir hereketdir, şonuň üçin olary programma üpjünçiligi dünýäsinde usul hökmünde durmuşa geçirmek iň gowusy: Kaka Ilki :
class Папа {
public void прихлюпывать() {
System.out.println("Хлюп");
}
}
Indi eje :
class Мама {
public void поджимать() {
System.out.println("Поджать губки");
}
}
Miras hakda aýdýan bolsak, şunuň ýaly kod ýazmak mantykly:
class Петя extends Папа, Мама {
@Override
public void прихлюпывать() {
System.out.println("Хлюп");
}
@Override
public void поджимать() {
System.out.println("Поджать губки");
}
}
Petagny, Petýany şol bir wagtyň özünde kakamdan we ejemden miras almak . Şeýle ýazsaňyz, düzüjisi arz eder, sebäbi Java-da birnäçe synp mirasyny durmuşa geçirip bilmersiňiz. Theeri gelende aýtsak, C ++ görnüşinde bolup biler, ýöne Java-da däl, sebäbi köp miras bilen uly meseleler ýüze çykyp biler: internetde jikme-jik ýazýarlar . Bu “mümkin däl” meseläni çözmek üçin Java interfeýsleri bar. Endikler üçin bolsa öz interfeýsimizi taparys. Hatda ikisi: Olar şeýle görünerler:
public interface ПривычкиПапы {
public void прихлюпывать();
}
public interface ПривычкиМамы {
public void поджимать();
}
Interfeýsde diňe endikleri suratlandyrdyk, ýöne näme edýändiklerini beýan etmedik, sebäbi anyk ýerine ýetirişleri synplarda ýazarys. Ilki bilen, kakama we ejeme kanuny endiklerini bereliň .
class Папа implements ПривычкиПапы {
@Override
public void прихлюпывать() {
System.out.println("Хлюп");
}
}
class Мама implements ПривычкиМамы{
@Override
public void поджимать() {
System.out.println("Поджать губки");
}
}
Indi bolsa, endikleri bir wagtyň özünde kakamdan we ejemden Pite geçirmek düýbünden kanuny
class Петя implements ПривычкиПапы, ПривычкиМамы {
@Override
public void прихлюпывать() {
System.out.println("Хлюп");
}
@Override
public void поджимать() {
System.out.println("Поджать губки");
}
}
Javaagny, Java-da köp ýerine ýetirmek (köplenç ýerine ýetiriş diýilýär) mümkin. Interfeýsleriň manysy indi düşnükli bolmaly - Java-da interfeýsleri ulanyp birnäçe mirasy durmuşa geçirip bilersiňiz. Theagdaýy hasam ösdürsek, mysal üçin: ahyrsoňy, kakam bilen ejemiň Petýa geçmedik endikleri bar , Petýanyň hem şahsy endikleri bolup biler. Bu möhüm Santa Barbara indiki bölümlerde Java uçaryna nädip geçirmelidigini öwrenersiňiz. Bu interfeýslere düşünmek üçin ýeke-täk mysal däl. Aşakdaky makalalary okamadyk bolsaňyz, hökman okaň: Java-daky interfeýsler (açylmasa, profiliňizden çykyp bilersiňiz ýa-da gizlin ýagdaýda okap bilersiňiz) Näme üçin interfeýsler gerek? Java - bu ýerdäki makaladaky ähli mysallary ýerine ýetiriň we interfeýslerde we synplarda usullary üýtgediň: usullaryň atlary, gollar (usulyň giriş hökmünde kabul edýän zady), usullaryň çykyş görnüşleri. Özüňize düşüniň: - synp we abstrakt synp bilen interfeýs ýerine ýetirilende tapawut; - esasy usullar.
GO TO FULL VERSION