KomputeranBernameyên

Java generiska: description û rêbazên

Dest bi xuyabûna bi zimanê Java di zîndanan de gelek guhertinên, ku bêguman de demên erênî li fonksiyonên xwe anîn. Yek ji van guherînên girîng danasîna Java Generic an binavkirinên e. Ev fonksiyonên de ne tenê zimanê nerm û rengawreng, di heman demê de jî di warê anîna cureyên daneyan pir ewletir bikin.

Rastî ev e ku berî destpêkirina generiska li Java buy code dikare bê afirandin, ne bi tenê di warê Object type reference. Wiha girêdan dikare ti object rêdan. Piştî ku hemû, dersên li Java wêris class Object zimnî ne. Lê belê, ev nêzîkatiya a Çavkaniyeke gelek şaşiyên related to cureyên ewlekariyê li ser zivirîna çavan ji bireserê ji Object ji bo cureyê hedef e. Dema bikaranîna binavkirinên hemû nûçeyî yên bi dizî û bi xweber pêk konseptê jî potansiyela wê ji bo çewtiyên.

Java generiska: description û nimûne

Bila ji me re mînakeke hêsan ya ku sepan ji prosesa ji bo sinifên normal, di hejmara bifikirin. Û piştre ji bo muayene bi detay yên hemû diguherîne û ciyawaziyên Java Generic bidomînî.

Bala xwe bidin ser riya ku daxuyaniya class de çêdibe Pair. Di cih de piştî navê polê de, bixemilînî aliyî vekirî, ku diyar nameya T. Ev cure, tujekirina, ew e ku di vê pêvajoyê de ji afirandina nimûneyeke vê class wê ji aliyê cureyê taybet şûna e. Wisa xuya dike ku wiha ne: Pair obj = new Pair (). Ev divê bê diyarkirin, ku ji dêvla ku T nikare ti nameya xwe diyar bike, di heman demê de, wek qaîde, bi kar tînin T, V an E.

Têbînî: em bi destpêka Versiyon ji heyştan ji Java, di kîjan cureyê target dema beyankirina bixemilînî kûrayî referansa li takvim dikare vala bimîne. So nimûne dikare wekî ku li jor rewritten: Pair obj = new Pair <> ().

Dema ku çîna ku di bi vî awayî di bedena xwe de di şûna awayên taybet yên di warên, girêdan, objects vegeriya ji aliyê rêbazên tu ku nameya bi kar îlankirin, paşê. Ji ber ku T dema ku di afirandina objeya class de bi taybetî, qadên yekem û duyem di vê rewşê de wê ji type Integer de bê guhertin.

Piştî ku mentiqa argumentên û firstItem secondItem, hewaleyê ji takvim hanê bi Divê ji type Integer an Bineçîn be. Eger tu hewl deden a type welat e ku cuda ji tiştê ku hate dîyarkirin di dema afirandina an object, danerê wê ev şaşîtî bila ne. Bi vî awayî, me yên avakirinê argumentên ku dema ku object wê wek be wiha ne: Pair obj = new Pair <> (Integer new (1), Integer nû (2)). Heman tişt ji bo nêzîkbûn û rêbazên setFirst setSecond. Û wek ku tu dibe û ekîban kiriye, metodên getFirst getSecond û dê nirxa cureyê Integer vegere.

Gelemperî bi cureyên class çend Parametreyên

Di dersên giştî dikare bi Parametreyên multiple cureyê ku bi di nav parantêzê de nabêje bi kommayê set îlan. Peyevk destê doza class Pair li jêr tê pêşkêş kirin.

Wek ku hûn dibînin, gava ku tu nimûneyeke vê class create di nav parantêzê de nabêje, divê bi heman hejmara cureyên wek Parametreyên nîşan didin. Eger tu bi vî rengî jî, strûktûra Daneyên wek Map nas in, hûn dikarin bibînin ku ev kar tam heman rêbazê. type of value - heye, ku argumana yekem type of key, û ya duyem jî dibêje. Ev divê bê diyarkirin, ku cureyên nexasme dema ku argumentên object dikarin tevîhev. Ji bo nimûne, ad jêr Pair nimûne class misogerî rast e: Pair obj.

Hinek taybetmendiyên giştî yên

Ji berî çûna din de, divê bê diyarkirin ku dendikên Java nade versiyonên cuda yên Pair class de biafirîne. Di rastiyê de, di vê pêvajoyê de ji bo daneheva a type giştî û hemû agahiyên li jêbirin. Li şûna wê, ku tu cureyên guncaw bîne, afirandina guhertoyeke taybet yên çîna Pair. Lê belê, di bernameyê de ye, hê jî bi tenê a Versiyon ji buy yên ku çîna hene. Ev pêvajoya ku di Java type paqijî Generic kir.

Nîşe xaleke girîng. Links to versîyonên cuda yên heman class buy java ne, dikarin ji bo yek û object eynî. Ku ye, difikirin, em du links: Pair obj1 û Pair obj2. Di dawîyê de, di xeta obj1 = obj2 an error. Tevî ku her du fakter ji type Pair in, li tiştên ku ew bixwe de, cuda ne. Ev mînakeke başe ji cureyên ewlekariyê li Java Generic e.

Qedexeye li ser çînên generic

Ev girîng e ku bizanibin ku binavkirinên dikare bi tenê ji bo îşaret bi cureyên e, ku ev e ku derbas Parametreyên buy argumana java class divê type class be. Ev cure sade, wek raxîne, du qat an dirêj, nayê dewirkirin. Bi gotineke din, di xeta van Pair daxuyaniya class nayê ne bi destûr: Pair obj. Lê belê, ev tahdîdeke e pirsgirêkek cidî ne, wek e ku çîna Java wrapper berê ji bo her type primitive hene. Bi rastî, eger Pair class de tu dixwazî encapsulate Integerek û Boolean nirxa avtoupakovka her tişt ji bo we: Pair obj = new Pair <> (25, rast e).

Din tahdîdeke cidî li ser neşiyana ji bo afirandina nimûne ji type parametre e. Ji bo nimûne, xeta jêr dê bibe yek error compilation: T yekem = T nû (). Ev zelal e, ji ber ku hûn di pêş nizanin gelo ku mesele derbas a class full an razber, an jî virtual. Heman tişt ji bo afirandina array.

cureyên sînorkirî

Gelek caran ne rewşên dema ku pêwîst e ji bo sînorkirina lîsteya cureyên ku dikare wekî argumana ji bo java class buy re derbas bûn. Werin, em texmîn dikin ku li Pair class me em dixwazin ku encapsulate tenê nirxên hejmarî ji bo operasyonên bîrkariyê de bêhtir li ser wan. Ji bo vê jî divê em ji bo danasîna sînorên jor yên cureyê parametre. Ku bi rêya ads superclass maye, hemû argumentên derbas di nav parantêzê de nabêje fêm kir. Ev dê wiha ne: class Pair . Di vî warî de, danerê dibîne ku li şûna li ser T parametre dikare bê alternatîv an class Hejmara an yek ji subclasses xwe.

Ev pêşwazîkirina hevpar e. Sînorkirinên weha bi gelek caran ji bo ne Parametreyên type rêde di yek û heman polê de. mînaka hizrên xwe li class Pair me dike: class Pair . Li vir em dendikên ku bi tîpa T dikarin kêfî re bêje, û bi tîpa V, divê yan bi tîpa T an yek ji subclasses xwe be.

Astengkirina "jêr" bi heman rengî ye, lê li şûna peyva ber bi avaniyê de super peyva. Ku class ye nepenî Pair dibêje, ku ji dêvla ku T dikare bê alternatîv an ArrayList, an jî tu class an virtual ku ev war.

rêbazên Java Generic û constructors

Di Java, binavkirinên dikare ne tenê ji bo çînên serî, lê bi rêbazên. Ji bo nimûne, rêbazeke buy dikarin di polê de bi berdewamî ragihand.

Weke ku di hejmara jor dît, rêbaza ad gelemperî no deal mezin e. Bes li ber type vegera rêbazeke ku bixemilînî eşkêla û diyar Parametreyên type the di wan de.

Eger her tiştî ye, ji avakirinê kirin:

bixemilînî Angle di vê rewşê de, berî bi navê designer danîn, ji ber ku ew ti nirxa vegera. Di encama her du bernameyên wê:

integer

ben

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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