AmakhompiyuthaUkuhlela

I-Java Generics: Incazelo kanye Nezindlela

Kusukela ekuqaleni kwayo, ulimi lweJava lunezinguquko eziningi, okungabazeki ukuthi zenze izici ezinhle ekusebenzeni kwayo. Olunye ushintsho oluphawulekayo ukufakwa kweJava Generic noma ukukhiqiza. Lokhu kusebenza kuye kwenza ukuthi ulimi luguquguquke futhi luguquguquke, kodwa futhi luvikelekile kakhulu ngokunciphisa izinhlobo zedatha.

Iqiniso liwukuthi ngaphambi kokusungulwa kwama-generics, ikhodi ejwayelekile ku-Java ingadalwa, kuphela ngezixhumanisi zohlobo lwe-Object. Izixhumanisi ezinjalo zingabelwa kunoma iyiphi into. Phela, zonke izigaba zaseJava ziyinzalo eqondile yeklasi ye-Object. Kodwa-ke, le ndlela ingumthombo ongaphumelela wamaphutha amaningi okuphepha kohlobo uma uguqula ngokucacile into kusuka ku-Object kuya kuhlobo oluhlosiwe. Uma kusetshenziselwa ukukhiqiza, konke okushiwo kwenziwa ngokuzenzakalelayo nangokuzenzekelayo, okungafaki ngisho nokuhleleka kwamaphutha.

I-Java Generics: incazelo nesibonelo

Ake sihlole isibonelo esilula sokusebenzisa i-generalization ekilasini evamile kulo mfanekiso ngezansi. Futhi kuphela-ke sizoqhubeka nokuhlolwa okuningiliziwe kuzo zonke izicabha kanye nama-nuances we-Java Generic.

Phawula ukuthi isigaba sePair sichazwa kanjani. Ngemva nje kwegama lesigaba, amabakaki e-angle avuliwe, lapho incwadi T iboniswa khona. Yiluhlobo lomnikazi wendawo okuzoshintshwa ngolunye uhlobo lapho udala isibonelo salesi sifundo. Kubonakala kanje: Pair obj = Pair entsha (). Kumele kuqashelwe ukuthi esikhundleni se-T, ungacacisa noma iyiphi incwadi, kodwa, njengomthetho, sebenzisa i-T, V noma i-E.

Qaphela: Ukuqala ngenguqulo yesishiyagalombili yeJava, ecacisa uhlobo oluhlosiwe uma isixhumanisi simenyezelwa, ungashiya amabakaki angena engakhi engenalutho. Ngakho isibonelo esingenhla singabhalwa kabusha kanje: Pair obj = Pair entsha <> ().

Uma iklasi libikwa ngaleyo ndlela, khona-ke emzimbeni, esikhundleni sezinhlobo ezithile zemasimu, izinkomba, nezindlela ezibuyiselwe ngezindlela, ungasebenzisa le ncwadi. Ngoba i-T ithathelwa indawo ethile uma udala into yeklasi, izinkambu zokuqala nezibili kulokhu kuzoba ngohlobo lwe-Integer.

Ukulandela logic, izingxabano kuqalaIsikhathi sesibiliIsihloko, sidluliselwe kumakhi ohambelanayo, kufanele sibe nohlobo lwe-Integer noma i-subclass yayo. Uma uzama ukudlulisa uhlobo lwedatha oluhlukile kulokho okwakucacisiwe lapho into idalwe, umqambi angeke weqa leli phutha. Ngakho, umakhi onokuphikisana lapho edala into ezoba nefomu elilandelayo: Pair obj = Pair entsha <> (entsha Integer (1), entsha Integer (2)). Okufanayo kusebenza nasezingxabanweni zezindlela zokusethaEkuqala nokusethaSecond. Futhi njengoba cishe usuqagele kakade, izindlela ze-getFirst nezokutholaSecond zizobuyisela izindinganiso zohlobo lwe-Integer.

Isigaba sama generic enezinhlobo eziningana zemingcele

Emakilasini ajwayelekile, ungase futhi umemezele imingcele yezinhlobo eziningana ezichazwe kubakaki be-angle, ehlukaniswe ngama-commas. Iqembu le-Pair leli cala linikezwe kumfanekiso ngezansi.

Njengoba ungabona, uma udala isifundo sekilasi elinjalo, inani elifanayo lezinhlobo njengoba imingcele kufanele icaciswe kubakaki be-angle. Uma ujwayele uhlobo olunjalo lwesakhiwo seDatha njengeMephu, ungase ubone ukuthi isimiso esifanayo sisetshenziswa lapho. Lapho, ukuphikisana kokuqala kuchaza uhlobo lokhiye, futhi okwesibini ucacisa uhlobo lwenani. Kumele kuqashelwe ukuthi izinhlobo zezimpikiswano ezedlulelwe endalweni yezinto zingalingana. Ngakho-ke, isimemezelo esilandelayo sesibonelo sekilasi le-Pair sinembile ngempela: Pair obj.

Ezinye izici ze-generalizations

Ngaphambi kokuba uqhubekele phambili, kufanele kuqashelwe ukuthi i-Java compiler ayidala izinguqulo ezahlukene zekilasi le-Pair. Eqinisweni, ngesikhathi sokuhlanganiswa, lonke ulwazi mayelana nohlobo olujwayelekile luzosuswa. Kunalokho, izinhlobo ezihambelanayo ziphonswa, zakha inguqulo ekhethekile yeklasi le-Pair. Noma kunjalo, uhlelo ngokwayo lunequlo olulodwa olujwayelekile lwaleli klasi. Le nqubo ibizwa ngohlobo lwe-Java Generic lokuhlanza uhlobo.

Ake sibone iphuzu elibalulekile. Izixhumanisi zezinguqulo ezahlukene zesigaba esifanayo se-java ezijwayelekile azikwazi ukukhomba into efanayo. Okusho ukuthi, sinezixhumanisi ezimbili: Pair obj1 ne-Pair imp2. Ngakho-ke, iphutha livela ku-object obj1 = obj2. Nakuba kokubili okuguquguqukayo kukhona kohlobo lwe-Pair , izinto abazibhekisela kuzo zihlukile. Lesi yisibonelo esicacile sokuphepha kwezinhlobo ku-Java Generic.

Izithibelo ezifakwe kumakilasi ajwayelekile

Kubalulekile ukwazi ukuthi ukukhiqiza kungasetshenziswa kuphela ezinhlotsheni zokubhekisela, okungukuthi, impikiswano edluliselwe ku-classic java ingxabano kumele ibe uhlobo lwekilasi. Izinhlobo ezinjalo ezinjengokuthi, isibonelo, kabili noma eside, azikwazi ukuhanjiswa. Ngamanye amazwi, umugqa olandelayo wokumemezela isigaba se-Pair awuvumelekile: Pair obj. Kodwa-ke, lokhu kunciphisa akuyona inkinga enkulu, ngoba iJava ineklasi ye-wrapper ehambelanayo ngayinye uhlobo lwezinhlamvu zokuqala. Uma ukhuluma ngokuqinile, uma ufuna ukufaka i-integer integer nenani elinengqondo enkampanini ye-Pair, i-auto-pack izokukwenza konke: I-Pair obj = Pair entsha <> (25, yeqiniso).

Omunye umkhawulo ongathí sina awukwazi ukudala isibonelo sepharamitha yohlobo. Ngakho, umugqa olandelayo uzobangela iphutha lokuhlanganiswa: T kuqala = entsha T (). Lokhu kusobala, ngoba awukwazi kusengaphambili ukuthi isigaba esigcwele noma isikhombimsebenzisi esibonakalayo sizodluliswa njengengxabano. Okufanayo kudala ukudala izigaba.

Izinhlobo ezinomkhawulo

Ngokuvamile kunezimo lapho kudingeka khona ukunciphisa uhlu lwezinhlobo ezingadluliselwa njengengxabano ekilasini le-java generic. Ake sicabange ukuthi ekilasini lethu le-Pair sifuna ukuhlanganisa kuphela izindinganiso zamanani ukuze kuqhutshekwe imisebenzi yezibalo kuzo. Ukuze senze lokhu, sidinga ukusetha ukubopha okuphezulu kwepharamitha yohlobo. Lokhu kusetshenziswa ngokusebenzisa isimemezelo se-superclass esizuzwa yizo zonke izimpikiswano ezedluliselwe kubakaki be-angle. Kuzobukeka kanje: i-class Pair . Ngale ndlela, lo mbumbulu ufunda ukuthi esikhundleni se-parameter ye-T, ungabeka esikhundleni sesigaba seNombolo noma esinye sezigaba zayo.

Lena yindlela ejwayelekile. Imikhawulo enjalo ivame ukusetshenziswa ukuze kuqinisekiswe ukuhambisana kwemikhawulo yohlobo ekilasini elifanayo. Cabanga ngesibonelo esiklasini sethu se-Pair: Isigaba Pair . Lapha sitshela umqambi othayipha u-T angaba nomphumela ongathandabuzeki, bese uthayipha uV kufanele abe uhlobo lwe-T noma olunye lwezigcawu zalo.

Umkhawulo "ovela ngezansi" uvele ngendlela efanayo, kodwa esikhundleni segama landa, igama eliphezulu lilotshiwe. Okusho ukuthi, isimemezelo se-class Pair sibonisa ukuthi esikhundleni se-T, noma i-ArrayList nanoma yiliphi iklasi noma isikhombikubona esikuzuzayo singashintshwa.

Izindlela ze-Generic zeJava nabakhi

EJava generalization kungasetshenziswa hhayi kuphela ngokuqondene namakilasi, kodwa nezindlela. Ngakho-ke, indlela ejwayelekile eyenziwa ngokujwayelekile ingaziwa esigabeni evamile.

Njengoba ubona kulesi sibalo esingenhla, akukho lutho oluyinkimbinkimbi ekumemezeni kwendlela ejwayelekile. Kwanele ukubeka amabakaki angaphandle ngaphambi kwendlela yohlobo lokubuya futhi ucacise imingcele yohlobo kubo.

Endabeni yomakhi, konke kwenziwa ngendlela efanayo:

Abakaki be-Angle kuleli cala babekwa ngaphambi kwegama lomakhi, ngoba alibuyiseli inani. Umphumela womsebenzi wezo zombili izinhlelo zizoba:

Integer

Umzila

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zu.delachieve.com. Theme powered by WordPress.