ÒdinatèPwogram

Java Generics: Deskripsyon ak metòd

Kòmanse avèk aparans nan lang lan Java te sibi yon anpil nan chanjman, ki san dout mennen moman pozitif nan fonctionnalités li yo. Youn nan chanjman sa yo enpòtan se entwodiksyon an nan Java Generic oswa jeneralizasyon. fonctionnalités sa a pa sèlman fè lang lan pi fleksib ak versatile, men tou, anpil pi an sekirite an tèm de pote kalite yo done.

Reyalite a se ke anvan entwodiksyon de les nan Java jenerik Kòd ta ka kreye, pa sèlman an tèm de objè di ki referans. lyen sa yo ka kapab asiyen nenpòt objè. Apre yo tout, klas nan Java yo enplisit resevwa eritaj Bondye klas objè. Sepandan, apwòch sa a se yon sous potansyèl nan anpil erè ki gen rapò ak kalite sekirite nan konvèsyon an aparan nan yon objè nan objè a nan kalite la sib. Lè w ap itilize jeneralizasyon tout plat yo fèt chal ak otomatikman, elimine menm potansyèl la pou erè.

Java Generics: Deskripsyon ak egzanp

Se pou nou konsidere yon egzanp ki senp nan aplikasyon an nan jeneralizasyon nan klas regilye nan figi ki anba a. Lè sa a, kontinye nan yon egzamen an detay de tout sibtilite yo ak nuans nan Java Generic.

Peye atansyon sou wout la nan ki deklarasyon nan klas fèt Pè. Touswit apre yo fin non an klas, louvri parantèz ang, sa ki te endike lèt T. a Li se yon kalite filler, ki se nan pwosesis la nan kreye yon egzanp nan klas sa a pral ranplase pa yon kalite espesifik. Li sanble jan sa a: Pè obj = nouvo Pè (). Li ta dwe remake ke olye pou yo T ka presize nenpòt lèt, men, tankou yon règ, sèvi ak T, V oswa E.

Remak: kòmanse ak vèsyon an wityèm nan Java a, ki espesifye kalite a sib lè deklare parantèz ang referans nan konstrukteur a ka kite vid. Se konsa, ka egzanp dwe reekri kòm pi wo a: Pè obj = nouvo Pè <> ().

Lè yo bay yon klas te deklare nan yon fason, lè sa a nan kò l 'olye pou yo kalite espesifik nan jaden, lyen, objè tounen pa metòd yo ou ka itilize lèt sa. Depi T lè y ap kreye se objè nan klas ranplase pa yon kalite patikilye, jaden premye ak dezyèm nan ka sa a yo pral nan antye nan kalite.

Apre lojik nan agiman yo ak firstItem secondItem, refere yo bay konstrukteur ki apwopriye dwe tou dwe nan antye kalite oswa souklas. Si ou eseye transmèt yon kalite done ki se diferan de sa ki te espesifye lè y ap kreye yon objè, du a pa pral kite erè sa a. Se konsa, agiman konstrukteur a lè yon objè yo pral jan sa a: Pè obj = nouvo Pè <> (nouvo antye (1), nouvo antye (2)). Menm bagay la tou aplike nan agiman yo ak metòd setFirst setSecond. Ak jan ou te pwobableman dvine, metòd getFirst getSecond epi yo pral retounen yon valè de kalite antye.

Jeneralize ak kalite klas plizyè paramèt

Nan klas jeneralize kapab tou deklare paramèt miltip nan kalite la ke yo mete nan parantèz ang ak yon vigil. Reamenaje pa yon ka se klas Pè prezante anba a.

Kòm ou ka wè, lè ou kreye yon egzanp nan klas sa a nan parantèz ang ta dwe endike nimewo a menm nan kalite kòm paramèt. Si ou se abitye avèk sa a ki kalite estrikti done kòm yon kat jeyografik, ou ka wè ke li itilize egzakteman prensip la menm. Gen, agiman an premye presize ki kalite kle yo, ak dezyèm lan - kalite a ki gen valè. Li ta dwe remake ke moun ki ki kalite transmèt lè yon objè agiman ka sipèpoze. Pou egzanp, apre anons Pè klas egzanp la se absoliman kòrèk: Pè obj.

Gen kèk karakteristik nan jeneralizasyon

Anvan ou ale pi lwen, li ta dwe remake ke moun ki du a Java pa kreye diferan vèsyon nan Pè nan klas la. An reyalite, nan pwosesis pou yo konpile yon kalite jeneralize tout enfòmasyon ki se efase. Olye de sa, ou pote kalite ki apwopriye, kreye yon vèsyon espesyal nan klas la Pè. Sepandan, nan pwogram lan gen se toujou sèlman yon vèsyon jenerik nan klas la. Pwosesis sa a rele nan Java kalite Generic netwaye.

Remake byen yon pwen enpòtan. Lyen ki mennen nan diferan vèsyon nan menm klas la java jenerik pa ka lonje dwèt sou yon sèl ak objè a menm. Sa se, ta kwè nou gen de lyen: Pè obj1 ak Pè obj2. Kontinwe, nan liy obj1 = obj2 yon erè. Malgre ke tou de varyab yo nan kalite Pè , objè yo, kote yo al gade, yo diferan. Sa a se yon premye egzanp nan kalite mouvman yo ak sekirite nan Java Generic.

Restriksyon sou klas jenerik

Li enpòtan konnen ke jeneralizasyon ka aplike sèlman nan referans kalite, ki se yo pase paramèt jenerik klas agiman java dwe yon kalite klas la. kalite sa yo ki senp, tankou, e.g., doub oswa long, li pa kapab transfere. Nan lòt mo, liy sa yo Pè deklarasyon nan klas pa pèmèt: Pè obj. Sepandan, limit sa a se pa yon pwoblèm grav, jan yo gen se yon korespondan klas Java pakè pou chak kalite primitif. Fè egzateman pale, si Pè nan klas ou vle ankapsulasyon yon nonb antye relatif ak Boolean valè avtoupakovka fè tout bagay pou ou: Pè obj = nouvo Pè <> (25, vre).

Yon lòt limitasyon grav se enkapasite a yo kreye yon egzanp nan kalite la paramèt. Pou egzanp, liy ki anba la a ap lakòz yon erè konpilasyon: T premye = nouvo T (). Sa a se evidan, paske ou pa konnen davans si wi ou non yon diskisyon pase yon klas konplè ou oswa ou abstrè, oswa menm koòdone. Menm bagay la tou ale pou kreye ranje.

kalite limite

Byen souvan gen sitiyasyon lè li nesesè nan limit lis la nan kalite ki ka pase kòm yon agiman ak Java jenerik klas la. Se pou nou asime ke nan Pè klas nou an, nou vle ankapsulasyon sèlman valè yo nimerik pou operasyon plis matematik sou yo. Pou fè sa nou bezwen defini limit la anwo nan kalite la paramèt. Li se reyalize pa vle di nan yon anons supèr eritye tout agiman yo te pase nan parantèz ang. Li pral gade jan sa a: klas Pè . Nan fason sa a, du a jwenn ke olye pou yo ka paramèt T a ap ranplase oswa klas Nimewo oswa yon sèl nan klas sub-li yo.

Sa a se yon resepsyon komen. restriksyon sa yo yo souvan itilize yo bay kalite konpatibilite paramèt nan yon sèl ak klas la menm. Konsidere egzanp lan nan klas Pè nou an: klas Pè . Isit la nou di du a ki kalite T a kapab abitrè, ak V kalite yo dwe swa T kalite oswa yon sèl nan klas sub-li yo.

Limite "anba a" se egzakteman menm jan an, men olye pou yo pawòl Bondye a fin eple super nan mo. Ki klas se klase Pè di ke olye pou yo T ka ranplase oswa yon ArrayList, oswa nenpòt klas oswa koòdone ke li eritye.

metòd Java jenerik ak konstrukteur

Nan Java, jeneralizasyon ka aplike pa sèlman nan klas yo, men tou metòd. Pou egzanp, ka yon metòd jenerik pral deklare nan yon sal klas regilye.

Jan yo wè nan figi a pi wo a, metòd la anons jeneralize pa gen okenn kontra gwo. Ase anvan kalite a retounen nan yon metòd yo mete parantèz yo ang ak presize paramèt yo di ki nan yo.

Si tout bagay se fè menm bagay ak konstrukteur a:

parantèz ang nan ka sa a mete devan non an nan designer a, paske li pa gen okenn valè retou. Rezilta a nan tou de pwogram yo pral:

nonb antye relatif

chèn

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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