Rekenaars, Programmering
Java Generiese: beskrywing en metodes
Begin met die verskyning van die Java-taal het 'n baie veranderinge, wat ongetwyfeld positiewe oomblikke gebring in sy funksie ondergaan. Een van die belangrike veranderinge is die bekendstelling van Java generiese of veralgemenings. Hierdie funksie nie net die taal meer buigsaam en veelsydig, maar ook baie veiliger in terme van die totstandkoming van die tipes data te maak.
Die feit is dat voor die bekendstelling van generiese in Java generiese kode kan geskep word, nie net in terme van tipe verwysing voorwerp. So links kan enige voorwerp toegeskryf word. Na alles, klasse in Java is implisiete Object klas erfgename. Maar hierdie benadering is 'n potensiële bron van baie foute wat verband hou met tipes sekuriteit in die oënskynlike sukses van 'n voorwerp van die voorwerp na die teiken tipe. By die gebruik van veralgemenings al gooi is implisiet en outomaties uitgevoer word, selfs die potensiaal vir foute uit te skakel.
Java Generiese: beskrywing en voorbeeld
Kom ons kyk na 'n eenvoudige voorbeeld van die toepassing van veralgemening om gereelde klasse in die figuur hieronder. En dan voortgaan om 'n gedetailleerde ondersoek van al die subtiliteite en nuanses van Java Generiese.
Aandag te gee aan die wyse waarop die klas verklaring voorkom paar. Onmiddellik na die klasnaam, oop hoek tussen hakies, wat die brief T. aangedui Dit is 'n soort van toevoeg, wat is in die proses van die skep van 'n geval van hierdie klas sal vervang word deur 'n spesifieke tipe. Dit lyk soos volg: Pair
Let wel: begin met die agtste weergawe van die Java, spesifiseer die teiken tipe wanneer verklaar verwysing hoek tussen hakies in die konstruktor kan leë gelaat word. So byvoorbeeld kan herskryf word as hierbo: Pair
Wanneer 'n klas verklaar word in so 'n manier, dan in sy liggaam in plaas van 'n spesifieke tipe velde, links, voorwerpe teruggekeer deur die metodes wat jy kan daardie brief gebruik. Sedert T wanneer die skep van die klas voorwerp word vervang deur 'n bepaalde soort, eerste en tweede velde in hierdie geval sal van die tipe Integer wees.
Na aanleiding van die logika van die argumente en firstItem secondItem, verwys na die toepaslike konstruktor moet ook van tipe Integer of subklas wees. As jy probeer om 'n datatipe wat anders as wat gespesifiseer is wanneer die skep van 'n voorwerp oordra, sal die samesteller nie toelaat dat hierdie fout. So, die argumente constructor wanneer 'n voorwerp sal wees soos volg: Pair
Veralgemeen met verskeie parameters klas tipes
In algemene klasse kan ook verklaar verskeie parameters van die tipe wat gestel word in hoek tussen hakies met 'n komma. Herontwerp deur 'n geval Paar klas word hieronder aangebied.
Soos jy kan sien, wanneer jy 'n geval van hierdie klas te skep in die hoek tussen hakies moet dieselfde aantal tipes as parameters aan te dui. As jy vertroud is met hierdie tipe van data struktuur as 'n Kaart is, kan jy sien dat dit presies dieselfde beginsel gebruik. Daar, die eerste argument spesifiseer die tipe sleutel, en die tweede - die tipe van waarde. Dit sal opgemerk word dat die tipe van oordraagbare wanneer 'n voorwerp argumente kan oorvleuel. Byvoorbeeld, die volgende advertensie Pair klas geval is absoluut korrek: Pair
Enkele kenmerke van veralgemenings
Voordat hulle verder, moet daarop gelet word dat die Java samesteller nie verskillende weergawes van die klas Paar beteken skep. Trouens, in die proses om 'n algemene tipe al die inligting is verwyder. In plaas daarvan, bring jy die toepaslike tipes, die skep van 'n spesiale weergawe van die klas paar. Maar in die program is daar nog net 'n generiese weergawe van die klas. Hierdie proses staan bekend in Java Generiese skoonmaak tipe.
Let wel 'n belangrike punt. Skakels na verskillende weergawes van dieselfde java generiese klas kan nie verwys na een en dieselfde voorwerp. Dit is, veronderstel ons het twee skakels: Pair
Beperkings op generiese klasse
Dit is belangrik om te weet dat veralgemenings net toegepas kan word om tipes verwys, dit wil parameters generiese klas Java argument moet 'n klas tipe wees slaag. Hierdie eenvoudige tipes, soos, bv dubbel of lang, kan nie oorgedra word. Met ander woorde, is die volgende reël Paar klas verklaring nie toegelaat: Pair
Nog 'n ernstige beperking is die onvermoë om 'n geval van die tipe parameter skep. Byvoorbeeld, sal die volgende reël 'n samestelling fout veroorsaak: T eerste = nuwe T (). Dit is voor die hand liggend, want jy weet nie vooraf of 'n argument verby 'n volle klas of abstrakte, of selfs koppelvlak. Dieselfde geld vir die skep van skikkings.
beperkte tipes
Dikwels is daar situasies wanneer dit nodig is om die lys van tipes wat as 'n argument om generiese klas Java kan oorgedra word beperk. Kom ons neem aan dat in ons klas Paar wil ons net die numeriese waardes vir verdere wiskundige bedrywighede op hulle omsluit. Om dit te doen wat ons nodig het om die boonste perk van die tipe parameter te definieer. Daar word besef deur middel van 'n superklas advertensies geërf al die argumente geslaag in hoek tussen hakies. Dit sal soos volg lyk: klas Paar
Dit is 'n algemene ontvangs. Sulke beperkings word dikwels gebruik om tipe verenigbaarheid parameters te verskaf in een en dieselfde klas. Kyk na die voorbeeld in ons klas Pair: klas Paar
Die beperking van die "onderkant" is presies dieselfde manier, maar in plaas van die woord strek tot by die woord super spel. Wat geklassifiseer klas Paar
Generiese Java metodes en konstruktors
In Java, veralgemenings kan nie metodes wat toegepas word op die klasse nie, maar ook. Byvoorbeeld, kan 'n generiese metode verklaar word in 'n gereelde klaskamer.
Soos gesien in die bostaande figuur, die advertensie veralgemeen metode is geen big deal. Genoeg voor die terugkeer tipe van 'n metode om die hoek tussen hakies te sit en spesifiseer die tipe parameters in hulle.
As alles insgelyks word gedoen om die constructor:
Punthakies in hierdie saak te stel voordat die naam van die ontwerper, want hy het geen terugkeer waarde. Die resultaat van beide programme sal wees:
integer
string
Similar articles
Trending Now