CyfrifiaduronRhaglennu

Generig Java: Disgrifiad a dulliau

Gan ddechrau gyda ymddangosiad y Java iaith wedi cael llawer o newidiadau, a oedd yn ddi-os yn dod eiliadau cadarnhaol yn ei ymarferoldeb. Un o'r newidiadau arwyddocaol hyn yw cyflwyno Java Generig neu gyffredinoli. Mae'r swyddogaeth nid yn unig yn gwneud yr iaith yn fwy hyblyg ac amryddawn, ond mae hefyd yn llawer mwy diogel o ran dod â'r mathau data.

Y ffaith yw y gall cyn cyflwyno generig mewn Java cod generig yn cael eu creu, nid yn unig o ran y gorchwyl math Gwrthrych. Gall cysylltiadau o'r fath yn cael ei neilltuo unrhyw wrthrych. Wedi'r cyfan, mae dosbarthiadau yn Java yn etifeddion dosbarth Gwrthrych ymhlyg. Fodd bynnag, mae'r dull hwn yn ffynhonnell bosibl o lawer o wallau yn ymwneud â mathau o ddiogelwch mewn trosi ymddangosiadol gwrthrych o'r Gwrthrych i'r math targed. Wrth ddefnyddio cyffredinoliadau pob castiau yn cael eu perfformio ymhlyg ac yn awtomatig, gan ddileu'r hyd yn oed y posibilrwydd o gamgymeriadau.

Generig Java: Disgrifiad ac esiampl

Gadewch i ni ystyried enghraifft syml o'r defnydd o gyffredinoli i ddosbarthiadau rheolaidd yn y ffigur isod. Ac yna mynd ymlaen i archwiliad manwl o'r holl cynnil ac arlliwiau o Java Generig.

Talu sylw at y ffordd y mae'r datganiad dosbarth yn digwydd Pâr. Yn syth ar ôl yr enw dosbarth, cromfachau ongl agored, a oedd yn dangos y T. llythyren Mae'n fath o filler, sydd yn y broses o greu achos o'r dosbarth hwn yn cael ei ddisodli gan fath penodol. Mae'n edrych fel a ganlyn: Pair Amc = Pair newydd (). Dylid nodi y gall yn lle T nodi unrhyw lythyr, ond, fel rheol, defnyddiwch T, V neu E.

Noder: gan ddechrau gyda'r wythfed fersiwn o'r Java, gan nodi'r math o darged wrth ddatgan cromfachau cyfeirio ongl yn y Constructor gellir gadael yn wag. Felly gall enghraifft ei ailysgrifennu fel yr uchod: Pair Amc = Pair newydd <> ().

Pan fydd dosbarth yn cael ei ddatgan yn y fath fodd, ac yna yn ei gorff yn hytrach na mathau penodol o gaeau, cysylltiadau, gwrthrychau a ddychwelwyd gan y dulliau y gallwch eu defnyddio y llythyr hwnnw. Ers T wrth greu'r gwrthrych dosbarth yn cael ei ddisodli gan fath arbennig, bydd caeau cyntaf a'r ail yn yr achos hwn fod o'r Cyfanrif math.

Yn dilyn y rhesymeg y dadleuon a'r firstItem secondItem, cyfeirio at y Constructor priodol y mae'n rhaid fod o Cyfanrif math neu Is-ddosbarth. Os ydych yn ceisio trosglwyddo fath ddata sy'n wahanol i'r hyn a nodwyd wrth greu gwrthrych, ni fydd y casglwr yn gadael camgymeriad hwn. Felly, mae'r Constructor dadleuon pan fydd gwrthrych fel a ganlyn: Pair Amc = Pair newydd <> (Cyfanrif newydd (1), Cyfanrif newydd (2)). Mae'r un peth yn berthnasol i'r dadleuon a dulliau setFirst setSecond. Ac wrth i chi yn ôl pob tebyg wedi dyfalu, dulliau getFirst getSecond a bydd yn dychwelyd gwerth o Cyfanrif fath.

Cyffredinol gyda mathau dosbarth nifer o baramedrau

Mewn dosbarthiadau cyffredinol Gall hefyd ddatgan paramedrau lluosog o'r math sy'n cael eu gosod mewn cromfachau ongl gyda choma. Hailgynllunio gan achos dosbarth Pair Cyflwynir isod.

Fel y gwelwch, pan fyddwch yn creu enghraifft o dosbarth hwn mewn cromfachau ongl Dylai ddangos yr un nifer o fathau fel paramedrau. Os ydych yn gyfarwydd â'r math hwn o strwythur data fel Map, gallwch weld ei fod yn defnyddio yr un egwyddor yn union. Yno, y ddadl gyntaf yn nodi'r math o allwedd, a'r ail - y math o werth. Dylid nodi bod y mathau o drosglwyddir pan gall dadleuon gwrthrych gorgyffwrdd. Er enghraifft, mae'r ad ar ôl dosbarth enghraifft Pair yn gwbl gywir: Pair Amc.

Rhai nodweddion o gyffredinoli

Cyn mynd ymhellach, dylid nodi nad yw'r compiler Java yn creu fersiynau gwahanol o'r Pair dosbarth. Yn wir, yn y broses o lunio math cyffredinol yr holl wybodaeth yn cael ei ddileu. Yn lle hynny, byddwch yn dod y mathau priodol, gan greu fersiwn arbennig o'r dosbarth Pâr. Fodd bynnag, yn y rhaglen mae dim ond yn fersiwn generig y dosbarth. Gelwir y broses hon yn Java math glanhau Generig.

Noder pwynt pwysig. Ni all Cysylltiadau â fersiynau gwahanol o'r un dosbarth generig java pwyntio at un a'r un gwrthrych. Hynny yw, mae'n debyg mae gennym ddau gysylltiadau: Pair obj1 ac Pair obj2. O ganlyniad, yn unol obj1 = obj2 gwall. Er bod y ddau newidyn o fath Pair , gwrthrychau y maent yn cyfeirio, yn wahanol. Mae hon yn enghraifft wych o'r math o ddiogelwch yn Java Generig.

Cyfyngiadau ar y dosbarthiadau generig

Mae'n bwysig gwybod y gall cyffredinoli eu cymhwyso yn unig i gyfeirio mathau, hynny yw i basio paramedrau ddadl java dosbarth generig fod yn fath ddosbarth. Ni all y mathau syml, megis, e.e. dwbl neu hir, yn cael eu trosglwyddo. Mewn geiriau eraill, nid oedd y llinell ganlynol datganiad dosbarth Pair yn cael ei ganiatáu: Pair Amc. Fodd bynnag, nid yw cyfyngiad hwn yn broblem ddifrifol, gan fod dosbarth papur lapio Java cyfatebol ar gyfer pob math cyntefig. Yn fanwl gywir, os yw'r Pair dosbarth rydych am ei grynhoi yn gyfanrif ac Boolean gwerth avtoupakovka yn gwneud popeth i chi: Pair Amc = Pair newydd <> (25, yn wir).

cyfyngiad difrifol arall yw'r anallu i greu enghraifft o'r math paramedr. Er enghraifft, bydd y llinell ganlynol achosi gwall casgliad: T gyntaf = T newydd (). Mae hyn yn amlwg, oherwydd nad ydych yn gwybod ymlaen llaw a oes dadl pasio dosbarth llawn neu haniaethol, neu hyd yn oed rhyngwyneb. Mae'r un peth yn wir am greu arrays.

mathau cyfyngedig

Yn aml mae yna sefyllfaoedd pan fydd angen i gyfyngu ar y rhestr o fathau y gellir eu pasio fel dadl i java dosbarth generig. Gadewch i ni dybio bod yn ein Pair y dosbarth rydym eisiau i grynhoi yn unig gwerthoedd rhifiadol ar gyfer gweithrediadau mathemategol pellach arnynt. I wneud hyn mae angen i ni ddiffinio'r terfyn uchaf o'r math paramedr. Sylweddolir drwy gyfrwng hysbysebion uwchddosbarth etifeddodd holl ddadleuon a basiwyd mewn cromfachau ongl. Bydd yn edrych fel a ganlyn: Dosbarth Pair . Yn y modd hwn, mae'r compiler yn canfod bod yn lle y gall y T paramedr yn lle neu ddosbarth Nifer neu un o'i subclasses.

Mae hwn yn dderbyniad cyffredin. cyfyngiadau o'r fath yn cael eu defnyddio'n aml i ddarparu paramedrau math cysondeb yn un ac yr un dosbarth. Ystyriwch yr enghraifft yn ein Pair dosbarth: Dosbarth Pair . Yma rydym yn dweud wrth y compiler y gall y math T fod yn fympwyol, a rhaid math V fod naill fath T neu un o'i subclasses.

Cyfyngu ar y "gwaelod" yn union yr un ffordd, ond yn lle y gair yn ymestyn i sillafu gair super. Y dosbarth hwnnw ei ddosbarthu Pair yn dweud y gallai yn lle T yn lle neu ArrayList, neu unrhyw ddosbarth neu rhyngwyneb sy'n ei etifeddu.

Dulliau Java generig ac adeiladwyr

Yn Java, gellir cyffredinoli eu cymhwyso nid yn unig i'r dosbarthiadau, ond hefyd ddulliau. Er enghraifft, gall dull generig yn cael ei ddatgan mewn ystafell ddosbarth rheolaidd.

Fel y gwelir yn y ffigur uchod, y dull ad cyffredinol oes unrhyw beth mawr. Digon cyn y math dychwelyd dull i roi'r cromfachau ongl ac yn nodi'r paramedrau teipiwch nhw.

Os bydd popeth yn cael ei wneud yn yr un modd i'r Constructor:

cromfachau ongl yn yr achos gerbron enw'r dylunydd, gan nad oes ganddo werth dychwelyd. Bydd canlyniad y ddwy raglen yn:

cyfanrif

llinyn

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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