OrdenagailuakProgramazioa

Java Generics: azalpena eta metodoak

Java hizkuntzan itxura hasita aldaketak, eta horrek, zalantzarik gabe, ekarri une positiboa bere funtzionalitate asko jasan ditu. aldaketa handiak horietako bat Java Generic edo orokortasun sarrera da. funtzionalitate honek ez soilik hizkuntzarekin malguagoak eta polifazetikoa, baina askoz ere datu motak jarriz dagokionez seguruagoa.

Izan ere, generics sarrera Java kodea generikoa ere aurretik sortu ahal izango dira, ez bakarrik motaren erreferentzia Objektu dagokionez. Horrelako loturak edozein objektu ezarri daitezke. Azken finean, Java Klase inplizituak Object klasea oinordekoak dira. Hala ere, planteamendu hau segurtasun mota lotutako itxurazko helburu motaren Objektu batetik objektu bat bihurtzeko akatsak askoren iturri potentzial bat da. orokortasun erabiltzean akatsik guztiak inplizituki eta automatikoki egiten dira, nahiz eta, akats potentziala ezabatuz.

Java Generics: azalpena eta adibidea

Demagun orokortu aplikatzea klaseak ohiko azpiko irudian adibide sinple bat kontuan hartu gurekin. Eta gero, ñabardurak eta Java Generic ñabardurak guztien azterketa zehatza jarraitzeko.

Arreta modu horretan klasean deklarazioa gertatzen Bikotea dira. Berehala class izenaren ondoren, open angelu parentesi, bertan adierazitako gutun T. the betegarri mota bat da, hau klase honen instantzia bat sortzeko prozesuan dago ordezkatuko dira mota jakin batek dena. honela dirudi: Bikotea obj = new Bikotea (). Kontuan izan behar da ordez T, letra edozein zehaztu daiteke, baina, oro har, erabili T, V edo E.

Oharra: zortzigarren Java bertsioa hasita, betiere erreferentzia angelu parentesi geratuko eraikitzaile batean utzi daiteke, hutsik helburu mota zehaztuz. Beraz, adibide ezin gainetik bezala berridatzi daitezke: Bikotea obj = new Bikotea <> ().

Noiz class bat da modu bat, deklaratu, eta gero bere gorputza ordez eremuak, estekak, metodoak gutun hori erabili ahal izango dituzu itzulitako objektu mota zehatzen. T geroztik denean class objektuaren ordez mota jakin bat, kasu honetan, lehen eta bigarren eremuak izango mota osokoa izan sortuta.

argumentuak eta firstItem secondItem logika jarraituz, egokia eraikitzaile aipatzen halaber mota osokoa edo azpiklase izan behar du. Datu mota bat horixe da zehaztu da ezberdina denean objektu bat sortzeko transmititzeko saiatzen bazara, konpiladoreak ez du utzi akats hau. Horrela, argumentuak eraikitzaile denean objektu bat egingo bezala izango dira: Bikotea obj = new Bikotea <> (berria Integer (1), new Integer (2)). Gauza bera argumentuak eta metodoak setFirst setSecond aplikatzen. Eta ziurrenik duzun, metodo getFirst getSecond asmatu eta mota osokoa, balioa itzuliko da.

zenbait parametro class motekin orokortua

klaseak orokortua ere diren angelu parentesi ezarri koma batekin motaren parametroak anitz deklaratu ahal izango da. Kasu batean Bikotea class aurkezten da by birmoldatu.

Ikusten duzun bezala, noiz class honen instantzia bat sortzea angelu parentesi duzun mota kopuru bera parametro bezala adierazi beharko dira. zauden datu egitura Map gisa mota hau ezagutzen baduzu, ikusiko duzu zehazki printzipio bera erabiltzen dela. balio-mota - Bada, lehen argumentua giltza mota, eta bigarren zehazten du. Kontuan izan behar da transmititu motak objektu argumentuak bat gainjarri daitezke. Adibidez, honako iragarki Bikotea class instantzia erabat zuzena da: Bikotea obj.

Batzuk orokortasun ezaugarri

Urrutira joan aurretik, kontuan izan behar da hori Java konpiladoreak ez du klasea Bikotea bertsio desberdinak sortu. Izan ere, orokortu mota bat informazio guztia biltzeko prozesuan ezabatzen da. Horren ordez, mota egokia ekarri, Bikotea class bertsio berezi bat sortuz. Hala ere, programan bertan class bertsio generiko bat baino ez da oraindik. Prozesu honek Java Generic garbiketa mota izeneko.

Oharra puntu garrantzitsu bat. java generiko klase berean bertsio desberdinak estekak ezin objektu bat eta bera seinalatu. Hau da, demagun bi esteka ditugu: Bikotea obj1 eta Bikotea obj2. Ondorioz, line obj1 = obj2 error bat. bai aldagai mota Bikotea of arren, objektuak zein erreferentzia dira, desberdinak dira. Hau segurtasun moten Java Generic ere adibide bat da.

klase generiko murrizketak

Garrantzitsua orokortasun hori aplikatu ahal izango bakarra mota erreferentzia jakin behar da, hori da parametro pasatzeko generiko class Java argumentu class-mota bat izan behar da. simple mota hauek, hala nola, adibidez, bikoitza edo luzea, ezin dira transferitu. Bestela esanda, lerro hau Bikotea class deklarazioa ez da onartzen: Bikotea obj. Hala ere, muga hori ez da arazo larri bat, han dagokion Java Wrapper primitibo mota bakoitzerako class bat da eta. Izan ere, klase Bikotea osokoa eta boolearrak balio avtoupakovka guztia zuretzat egiten enkapsulatu nahi baduzu: Bikotea obj = new Bikotea <> (25, egia).

Beste mugarik larriak imposibilidad parametro motaren instantzia bat sortu nahi da. Adibidez, lerro hau compilation error sortuko dute: T lehenengo = T berrian (). Hau agerikoa da, ez duzulako aldez aurretik jakin argumentu osoa klase edo abstraktua, edo baita interfazea gainditu ala ez. Gauza bera matrizeak sortzeko doa.

mota mugatua

Sarritan ez dira egoerak denean beharrezkoa da mota hori argumentu class generiko Java gisa pasa dezake mugatzeko. Dezagun bere gain digu gure klase Bikotea bakarrik numerikoak horien gainean gehiago eragiketa matematiko balioak enkapsulatu nahi dugu. Horretarako, goiko parametro motaren muga zehaztu behar dugu. Da heredatu angelu parentesi pasatu argumentu guztiak superclass iragarki baten bidez konturatu. honela itxura izango du: class Bikotea . Modu honetan, konpiladoreak topatzen ordez parametro T ordezkatu daiteke edo Zenbakia class edo bere azpimota bat da.

Hau harrera komun bat da. Horrelako murrizketak erabili ohi dira bateragarritasuna mota parametro eskaintzeko bat eta klase berean. Demagun adibidez, gure klase Bikotea dira: klase Bikotea . Hemen konpiladore mota T arbitrarioa izan daiteke kontatu ditugu, eta V motako bai T mota edo bere azpimota bat izan behar da.

"bottom" mugatzea zehazki modu berean da, baina horren ordez hitzaren hitza super ortografia hedatzen da. Hori sailkatzen class Bikotea dio T-ren ordez ordezkatu ahal izango dira, edo ArrayList bat, edo edozein klase edo interfazea da KDEko hori.

Generic Java metodo eta eraikitzaileak

Java ere, orokortasunak ez aplika daiteke klaseak bakarrik, baina baita metodoak. Adibidez, metodo orokorra izango erregularra ikasgela batean deklaratu ahal izango da.

Goiko irudian ikusten den bezala, ad orokortua metodoa big aurre egiteko ez da. Larreina itzulera metodo bat motaren angelu parentesi jarri aurretik eta mota parametroak zehaztu horietan.

dena era berean egiten bada eraikitzaile izateko:

Angelu kasu honetan parentesi diseinatzaile izenaren aurretik jarri, no bueltan balioa delako. bai programen emaitza izango da:

Integer

String

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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