Kaip naudoti dinaminį įrišimą „Java“?

Kaip Naudoti Dinamini Irisima Java



dinaminis įrišimas “ leidžia atlikti polimorfinį elgesį, kai objekto metodo iškvietimas nustatomas vykdymo metu pagal faktinį objekto tipą, o ne nuorodos tipą. Jis skatina kodo pakartotinį naudojimą, leisdamas poklasiams nepaisyti ir pateikti metodų, apibrėžtų pagrindinėje klasėje, įgyvendinimą.

Šiame tinklaraštyje demonstruojamas dinaminio įrišimo naudojimas ir įgyvendinimas „Java“.

Kaip naudoti dinaminį įrišimą „Java“?

Dinaminis surišimas leidžia laisvai sujungti objektus. Tai padeda lengvai išplėsti funkcionalumą pridedant naujų poklasių, kurie nepaiso metodų nekeičiant esamo kodo. Dinaminis susiejimas plačiai naudojamas vykdymo laiko siuntimui, įvykių tvarkymui ar papildinių sistemoms.







Norėdami gauti išsamų paaiškinimą, panagrinėkime keletą pavyzdžių:



1 pavyzdys: Dinaminio įrišimo įgyvendinimas



Naudodami dinaminį susiejimą, programuotojai gali leisti vartotojams tinkinti ir nepaisyti numatytosios elgsenos, kad sukurtų tinkinamas programas. Praktiniam įgyvendinimui panagrinėkime pavyzdį:





importuoti java.util.Arrays;
importuoti java.util.HashSet;
importuoti java.util.List;
importuoti java.util.Set;

viešoji klasė DynBind {
viešas statinis tuštumas pagrindinis ( Styga [ ] args ) {
Žaidimų žaidimasType1 = naujas kriketas ( ) ;
Žaidimų žaidimasType2 = naujas CallofDuty ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
klasė Žaidimai {
public void gameType ( ) {
System.out.println ( „Fiziniai arba virtualūs žaidimai“ ) ;
}
}
klasė Kriketas pratęsia Žaidimą {
@ Nepaisyti
public void gameType ( ) {
System.out.println ( 'Krketas yra fizinis žaidimas' ) ;
}
}
klasė CallofDuty pratęsia Gaming {
@ Nepaisyti
public void gameType ( ) {
System.out.println ( „CallofDuty yra virtualus žaidimas“ ) ;
}
}

Aukščiau pateikto kodo paaiškinimas:



  • Pirma, klasė ' DynBind “ yra sukurtas ir du objektai tipo “ Žaidimas “ yra deklaruojami.
  • Tada šie objektai inicijuojami naudojant naują ' Kriketas “ ir „ Pareigos šauksmas “ objektai, ši iniciacija parodo dinaminį susiejimą. Nuorodos tipas yra „ Žaidimas “, bet tikrieji objektų tipai yra „ Kriketas “ ir „ Pareigos šauksmas “, atitinkamai.
  • Dabar šie objektai naudojami norint iškviesti „ žaidimo tipas () “ funkcijos, nepaisydami funkcijos vaikų klasėse.
  • Tada tėvas “ Žaidimas 'klasė yra deklaruojama, kuri sukuria ir inicijuoja ' žaidimo tipas () “ funkcija, kuri išspausdina netikrą tekstinį pranešimą.
  • Tada sukuriamos dvi vaikų klasės pavadinimu „ Kriketas “ ir „ Pareigos šauksmas “. Šios klasės yra paveldėtos iš tėvų “ Žaidimas ' klasė.
  • Po to „ @Nepaisyti „Komentaras naudojamas norint nepaisyti pirminio“ Žaidimas “ klasės metodai, pavadinti “ žaidimo tipas () “.
  • Galiausiai abiejuose antrinės klasės nepaisomuose metoduose rodomas skirtingas netikras pranešimas.

Pasibaigus vykdymo etapui:

Išvestis rodo, kad antrinių klasių netikri pranešimai rodomi konsolėje naudojant dinaminį susiejimą.

2 pavyzdys: kelių lygių paveldėjimo įgyvendinimas

Dinaminis susiejimas taip pat gali būti įgyvendintas kuriant daugiapakopį paveldėjimą. Du tos pačios programos kodų blokai, kaip parodyta žemiau:

klasė Žaidimai {
public void gameType ( ) {
System.out.println ( „Fiziniai arba virtualūs žaidimai“ ) ;
}
}
klasė Kriketas pratęsia Žaidimą {
@ Nepaisyti
public void gameType ( ) {
System.out.println ( 'Krketas yra fizinis žaidimas' ) ;
}
public void playFormat ( ) {
System.out.println ( 'Kriketas turi skirtingus žaidimo formatus' ) ;
}
}
klasė CallofDuty pratęsia Gaming {
@ Nepaisyti
public void gameType ( ) {
System.out.println ( „CallofDuty yra virtualus žaidimas“ ) ;
}
public void gameMode ( ) {
System.out.println ( „CallofDuty turi kelis žaidimo režimus“ ) ;
}
}
klasės „CricketGame“ pratęsia kriketą {
public void gameMode ( ) {
System.out.println ( „Krketas turi vieno žaidimo režimą“ ) ;
}
}
klasės CallofDutyGame pratęsia CallofDuty {
}

Aukščiau pateikto kodo paaiškinimas:

  • Pirma, tėvas “ Žaidimas “ klasė yra sukurta ir ji apima “ žaidimo tipas () “ funkcija, kurioje yra netikras pranešimas.
  • Toliau dvi vaikų klasės, pavadintos „ Kriketas “ ir „ Pareigos šauksmas “ yra sukurti, abu nepaisydami pagrindinės klasės funkcijos pavadinimu “ žaidimo tipas () “.
  • Šiose klasėse yra viena papildoma funkcija pavadinimu ' playFormat() “ ir „ žaidimo režimas () “ funkcijas, atitinkamai.
  • Tada sukurkite kelių lygių vaiką pavadinimu „ Kriketo žaidimas 'kuris pratęstas vaiko' Kriketas ' klasė. Jame yra „ žaidimo režimas () 'funkcija, kurią nepaiso jos pirminė' Kriketas ' klasė.
  • Po to „ CallofDutyGame “ klasė sukurta kaip vaikas „ Pareigos šauksmas ' klasė. Jis sukuria daugiapakopį paveldėjimą ir įgalina dinaminio įrišimo funkcionalumą.

Dabar įterpkite „ pagrindinis () “ metodas:

viešoji klasė DynBind {
viešas statinis tuštumas pagrindinis ( Styga [ ] args ) {
CallofDutyGame codg = naujas CallofDutyGame ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

Kriketo žaidimas cricg = naujas kriketo žaidimas ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Aukščiau pateikto kodo paaiškinimas:

  • Pirma, objektas „ CallofDutyGame “ yra sukurta klasė, kuri iškviečia savo pirminių klasių funkcijas.
  • Tokiu pat būdu „ Kriketo žaidimas “ objektas yra deklaruojamas, kuris iškviečia savo pirminės klasės funkciją, kuri yra prieinama keliuose hierarchijos lygiuose.

Pasibaigus vykdymo etapui:

Išvestis rodo, kad kelių lygių paveldėjimas sukurtas naudojant dinaminį įrišimą Java.

Išvada

Java programoje „ dinaminis įrišimas “ siūlo tokius privalumus kaip polimorfizmas, kodo pakartotinis naudojimas, lankstumas ir išplečiamumas. Jis įgyvendinamas laikantis paveldėjimo taisyklių, metodo nepaisymo ir pakeitimo. Dinaminis susiejimas taip pat įgalina vykdymo funkcijas ir pagerina lanksčią bei polimorfinę OOP koncepciją. Tai viskas apie dinaminio įrišimo naudojimą ir įgyvendinimą „Java“.