Mis on Java üldine versioon? - juhend algajatele

See artikkel Java-generika kohta annab lühikese ülevaate java-geneerilistest ainetest ja selle erinevatest tüüpidest koos näidetega.

Mõelge näiteks, kus peate koostama nimekirja paikkonna elusolenditest. Pole tähtis, kas see on inimene, loom või taim. Tähtis on vaid elusolend. Sel juhul rühmitaksite nad kõik kategooriasse „Elavad asjad” ja ei kategoriseeriks neid. Samamoodi on teie jaoks oluline sisu, mitte andmetüüp, kui peate mõnda teavet salvestama, ja seal kasutate Genericsit. Generics aastal on keele funktsioon, mis võimaldab kasutada üldisi tüüpe ja meetodeid.

Allpool on loetelu teemadest, mida selles artiklis käsitlen:





Mis on Java üldine versioon?

Üldised on termin, mis tähistab üldiste tüüpide ja meetodite määratlemise ja kasutamisega seotud keeleomaduste kogumit. Java Generic meetodid erinevad tavalistest andmetüüpidest ja meetoditest. Enne Genericsit kasutasime mis tahes tüüpi objektide salvestamiseks, st. mitte üldine . Nüüd sunnivad Generics programmeerija teatud tüüpi objektide salvestamiseks.

Nüüd, kui teate, mis on Java-s Generics, liigume edasi ja mõistame, miks vajate Java Generics-i.



Miks Java Generics?

Kui vaatate klassides, siis märkate, et enamik klassidest võtab parameetri / argumendi tüüpi Object. Põhimõtteliselt võivad nad sellisel kujul võtta argumendiks mis tahes Java-tüübi ja tagastada sama objekti või argumendi. Nad on sisuliselt heterogeenne st mitte sarnast tüüpi.

FrameworkHierarchy - üldised Java-versioonid - Edureka

Mõnikord pole Java-rakenduses sisendi andmetüüp fikseeritud. Sisendiks võib olla täisarv , to ujuk või . Sisendi määramiseks õige andmetüübi korral tuli läbi viia eelnev kontroll. Traditsioonilises lähenemisviisis kontrolliti pärast sisendi võtmist sisendi andmetüüpi ja määrati seejärel õige andmetüübi muutujale. Selle loogika kasutamisel pikendati koodi pikkust ja täitmisaega. Selle vältimiseks Tutvustati geneerilisi ravimeid . Kui kasutate rakendust Generics, kontrollitakse koodi parameetreid kompileerimise ajal automaatselt ja see määrab vaiketüübi andmetüübi. Nii et siin on vaja Java-s üldiste kontseptsiooni.



Nüüd, kui olete saanud ülevaate Genericsist, liigume edasi ja uurime erinevaid viiseLähtekoodile saab rakendada geneerilisi aineid.

Java Genericsi tüübid

Java-s saab Genericsit kasutada neljal erineval viisil ja need on järgmised:

  1. Üldine tüübiklass
  2. Üldine liides
  3. Üldine meetod
  4. Üldine konstruktor

Mõistame nüüd, kuidas geneerilisi aineid saab tüübiklassi põhjalikult rakendada.

1. Üldine tüübiklass

Klass on üldine, kui ta deklareerib ühe või mitu tüübimuutujat. Neid muutuja tüüpe tuntakse kui tüübi parameetreid . Mõistame seda näite abil. Allpool toodud näites koostan ühe atribuudiga klassi x ja vara tüüp on objekt.

klass Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

Siin, kui olete klassi alustanud kindla tüübiga, tuleks klassi kasutada ainult selle konkreetse tüübiga. Nt Kui soovite, et klassi üks eksemplar hoiaks väärtust x tüüpi “ String ', Siis peaks programmeerija seadistama ja saama ainsa tüüp. Kuna olen deklareerinud atribuuditüübi objektiks, ei saa seda piirangut kuidagi jõustada. Programmeerija saab määrata mis tahes objekti ja võib oodata mis tahes tagastusväärtuse tüüpi saada meetod kuna kõik Java tüübid on alamtüübid klass.

Seda tüüpi piirangute jõustamiseks võime kasutada järgmisi geneerilisi ravimeid:

class Genericclass {// T tähistab 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

Nüüd võite olla kindel, et klassi ei kasutata valede tüüpidega valesti. Lihtne näide' Üldklass Näeb välja nagu allpool näidatud:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // See tõstab kompileerimisaja viga

Nii see töötab. Sedaanaloogia kehtib ka liidese kohta. Vaatame kiiresti näite, et mõista, kuidas saab geneeriliste andmete teavet kasutada Java liideseid.

2. Üldine liides

An viitab abstraktsetele andmetüüpidele. Nad lubavad manipuleerida nende esindamise üksikasjadest sõltumatult. Samuti moodustavad nad aastal hierarhia keeltes. Mõistame, kuidas üldist tüüpi saab Java liideste puhul rakendada.

// Üldise liidese määratluse liides GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Üldise liidese klassi juurutav klass Genericclass rakendab GenericInterface {public Integer PerformExecution (String x) {// täitekood} public String ReverseExecution ( Täisarv x) {// täitekood}}

Loodan, et suutsite aru saada, kuidas saab Genericsit kasutada tüübiklassis ja liidestes. Nüüd uurime seda artiklit põhjalikumalt ja mõistame, kuidas see on meetodite ja konstruktorite jaoks kasulik.

sorteeri massiiv c ++ keeles

3. Üldised meetodid

Üldmeetodid on palju sarnased üldklassidega. Need erinevad üksteisest ainult ühe aspekti poolest, mis ulatus või tüüp on ainult meetodi sees. Üldmeetodid tutvustavad oma tüüpi parameetreid.

Mõistame seda näite abil. Allpool on toodud näide üldisest meetodist, mida saab kasutada kõigi tüübiparameetrite esinemissageduste leidmiseks muutujate loendist.

public staatiline int countAllOccurrences (T [] loend, T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) loeb ++} else {for (T listElement: loend ) if (element.equals (listElement)) loeb ++} tagastab}

Kui läbite nimekirja Selles meetodis otsimiseks sobib see hästi. Kuid kui proovite stringi loendist numbrit leida, annab see kompileerimisaja vea.

See analoogia sarnaneb ka konstruktoriga. Võtame näite üldkonstruktorile ja mõistame selle toimimist.

4. Üldine konstruktor

Ehitajale on koodiplokk, mis initsialiseerib äsja loodud objekti. A ehitaja meenutab J-i eksemplarimeetodit ava kuid see pole meetod, kuna sellel pole tagastustüüpi. Konstruktor on klassiga sama nimega ja näeb J-s välja selline ava kood. Võtame nüüd näite ja mõistame, kuidas see töötab.

klass Mõõt {privaatne T pikkus privaatne T laius privaatne T kõrgus // üldine konstruktori avalik mõõde (T pikkus, T laius, T kõrgus) {super () this.length = pikkus this.width = width this.height = height}}

Ülaltoodud näites on dimensiooni klassi konstruktoril teave tüübi kohta. Nii et teil võib olla dimensiooni eksemplar, millel on kõik ainult ühte tüüpi atribuudid. Nii saate kasutada üldist tüüpi konstruktoreid. Loodan, et saite Java-s aru geneeriliste tüüpide tüüpidest.

Nüüd liigume edasi ja uurime Java-i Generics eeliseid.

Genericsi eelised Java-s

1. Koodi korduvkasutus

Võite koostada strateegia, klassi või an üks kord ja kasutage mis tahes tüüpi või mis tahes viisil, mida vajate.

2. Üksikute tüüpide ülekandmine pole vajalik

Põhimõtteliselt taastasite teavet kasutajalt iga kord peate selle tüübikinnitama. Kirjutamine iga taastamisülesande juures on suur migreen. Selle lähenemise likvideerimiseks võeti kasutusele geneerilised ravimid.

3. Mitte-üldise algoritmi juurutamine

Sellega saab arvutada algoritme, mis töötavad mitmesuguste üksuste puhul, mis on ka tüübikindlad.

See oli kõik Java Genericsi eelistest. Sellega jõuame selle Java-i üldteemalise artikli lõpuni. Loodan, et leidsite selle informatiivseks ja aitasite Java Genericsist aru saada.

Vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Oleme siin, et aidata teil igal sammul teie teekonnal, et saada lisaks sellele Java-intervjuu küsimustele välja, pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java-arendajad. Kursus on loodud selleks, et anda teile Java-programmeerimises alustamine ja õpetada teid nii Java-põhiprogrammide kui ka täiustatud kontseptsioonide ning erinevate Java-raamistike jaoks, nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle kommentaari jaotises „Generics in Java ”Artikkel ja me pöördume teie poole niipea kui võimalik.