CoimpiutaireanPrògramadh

Java Generics: tuairisgeul agus dòighean-obrach

A 'tòiseachadh le coltas an Java cànan air a dhol tòrr atharrachaidhean, a tha gun teagamh thug deagh amannan ann a-chomas. Aon de na atharrachaidhean mòra a tha a 'toirt a-steach Java Coitcheann no coitcheannais. -Gnìomh seo chan ann a mhàin a 'dèanamh a' chànain nas sùbailte agus goireasach, ach cuideachd mòran nas sàbhailte a thaobh a bhith a 'toirt an dàta seòrsa.

Tha an fhìrinn gu bheil ron a 'toirt a-steach generics ann an Java coitcheann Còd a dh'fhaodadh a bhith air a chruthachadh, chan ann a mhàin a thaobh an seòrsa iomradh Rud. Leithid sin de cheanglaichean Faodar an sònrachadh rud sam bith. Às dèidh na h-uile, clasaichean ann an Java tha fillte a-staigh Rud clas oighrean. Ach, seo an dòigh-obrach a dh'fhaodadh a bhith na thobar mòran mearachdan co-cheangailte ri tèarainteachd seòrsa follaiseach ann an atharrachadh an nì bho Rud ris an targaid seòrsa. Nuair a chleachdas coitcheannais a h-uile tilgeadh a tha a 'cluich dhìreach agus fèin-obrachail, fiù' s a 'cur às a' chomas airson mhearachdan.

Java Generics: tuairisgeul agus eisimpleir

Leig dhuinn beachdachadh sìmplidh eisimpleir air an iarrtas generalization gu cunbhalach ann an clasaichean figear gu h-ìosal. Agus an uair sin a dhol air adhart gu sgrùdadh mionaideach a h-uile subtleties agus nuances Java Coitcheann.

Aire thoirt air an dòigh anns a bheil an clas an dearbhadh a 'tachairt Paidhir. Dìreach an dèidh an clas ainm, fosgailte ceàrn eadar camagan, a sheall an litir T. 'S e seòrsa de stuth lìonaidh, a tha ann am pròiseas a' cruthachadh eisimpleir den chlas seo thèid a chur an àite sònraichte. Tha ea 'coimhead mar a leanas: Paidhir obj = paidhir ùr (). Bu chòir a thoirt fa-near gun an àite T urrainn sònraich litir sam bith, ach, mar a riaghailt, a 'cleachdadh T, V no E.

Note: 'tòiseachadh leis an ochdamh dreach de Java, a' sònrachadh an targaid-seòrsa nuair a cur an cèill iomradh ceàrn eadar camagan ann an constructor Faodar fhàgail falamh. Mar sin, mar eisimpleir Faodar ath-sgrìobhadh mar gu h-àrd: Paidhir obj = paidhir ùr <> ().

Nuair a tha an clas 'cur an cèill ann an dòigh, agus an uair sin ann a chorp an àite seòrsachan sònraichte de achaidhean, ceanglaichean, rudan a thilleadh le na dòighean a chleachdas tu an litir sin. Bhon T nuair a chruthaicheas a 'chlas nì air a chur na àite sònraichte an seòrsa, a' chiad agus an dàrna achaidhean sa chùis seo bidh an t-seòrsa Integer.

Às dèidh an loidsig de na h-argamaidean agus firstItem secondItem, iomradh air na iomchaidh constructor feumar cuideachd a bhith seòrsa Integer no subclass. Ma dh'fheuchas tu ri thar-chur an dàta a-seòrsa a tha eadar-dhealaichte bho na chaidh a shònrachadh nuair a bhith a 'cruthachadh rudan, a' cruinneachadh cha leig a 'mhearachd seo. Mar sin, na h-argamaidean constructor nuair a nì mar a leanas: Paidhir obj = paidhir ùr <> (ùra Integer (1), ùr Integer (2)). Tha an aon rud a 'buntainn ri na h-argamaidean agus dòighean setFirst setSecond. Agus mar a tha thu 's dòcha fhios, dòighean getFirst getSecond agus tillidh luach-seòrsa Integer.

Farsaing le grunn sheòrsaichean clas crìochan

Ann an clasaichean farsaing cuideachd a 'cur an cèill ioma crìochan an t-seòrsa a tha suidhichte ann an ceàrn an camagan le cromag. Ath-dhealbhachadh le cùis Paidhir clas air a thoirt gu h-ìosal.

Mar a chì thu, nuair a chruthaicheas sibh an eisimpleir den chlas seo ann an ceàrn a bu chòir an camagan a 'comharrachadh an aon àireamh de sheòrsaichean mar chrìochan. Ma tha thu eòlach air an seòrsa seo de dhàta structar mar mapa, chì thu gu bheil e a 'cleachdadh an aon prionnsabal. Tha a 'chiad argamaid a' sònrachadh an t-seòrsa de phrìomh, agus an dàrna fear - an t-seòrsa de luach. Bu chòir a thoirt fa-near gu bheil na seòrsaichean a chraoladh nuair a nì argamaidean a dh'fhaodadh a chèile. Mar eisimpleir, tha na leanas ad Paidhir clas eisimpleir tha buileach ceart: Paidhir obj.

Nithean feartan coitcheannais

Mus deach a 'dol air adhart, bu chòir a thoirt fa-near gun robh an Java compiler Chan eil chruthachadh dreachan eadar-dhealaichte den chlas Paidhir. Gu dearbh, ann am pròiseas a 'cur ri chèile farsaing air a h-uile seòrsa fiosrachadh a tha a' sguabadh às. An àite sin, tha thu a thoirt iomchaidh seòrsa, a 'cruthachadh dreach sònraichte den Paidhir clas. Ach, anns a 'phrògram tha fhathast ach coitcheann dreach den chlas. Tha am pròiseas seo Coitcheann a ghairm ann an Java glanadh seòrsa.

Note àite cudromach. Oifigeil airson dreachan eadar-dhealaichte den aon Java coitcheann chlas nach urrainn a chomharrachadh an aon nì. Is e sin, tha sinn a 'creidsinn gu bheil dà ceanglaichean: Paidhir obj1 agus Paidhir obj2. Mar sin, ann an loidhne obj1 = obj2 mearachd. Ged a tha an dà chuid caochladairean de seòrsa Paidhir , na nithean air a bheil iad a 'bruidhinn, a tha eadar-dhealaichte. 'S e seo na prìomh eisimpleir den t-seòrsa ann an Java tèarainteachd coitcheann.

Restrictions air clasaichean coitcheann

Tha e cudromach fios a bhith agaibh gu bheil coitcheannais a chur an sàs a-mhàin do thobair seòrsaichean, a tha a 'dol seachad air crìochan coitcheann clas Java argamaid a dh'fheumas a bhith a' chlas-seòrsa. Tha iad sin a sìmplidh seòrsa, leithid, me, dùbailte no fad, chan urrainn a bhith air a ghluasad. Ann am briathran eile, tha na leanas loidhne Paidhir clas dearbhadh nach eil ceadaichte: Paidhir obj. Ach, a 'chuingeachaidh seo, chan e dona, mar a tha co-fhreagarrach Java còmhdach clas prìomhadail airson gach seòrsa. Strictly 'bruidhinn, ma tha an clas Paidhir thu airson an encapsulate integer agus luach avtoupakovka boolean a h-uile càil a' dèanamh airson dhuibh: Paidhir obj = paidhir ùr <> (25, fìor).

Another droch chuingeachadh 'S e an neo-chomas a bhith a' cruthachadh eisimpleir de na paramadair seòrsa. Mar eisimpleir, tha na leanas loidhne bheir chruinneachadh mhearachd: T chiad = ùr T (). Tha seo follaiseach, a chionn nach eil thu eòlach ann an ro-làimh a bheil an argamaid seachad làn clas no eas-chruthach, no fiù 's eadar-aghaidh. Tha an aon rud a 'dol airson a' cruthachadh arrays.

bheag de sheòrsachan

Gu math tric tha an suidheachaidhean nuair a tha e riatanach a chuingealachadh liosta de na seòrsachan a ghabhas seachad mar argamaid gu Java coitcheann a 'chlas. Leig dhuinn smaoineachadh gu bheil againn ann an clas Paidhir sinn airson encapsulate ach an luachan àireamhach airson tuilleadh matamataigeach obraichean orra. Airson seo a dhèanamh feumaidh sinn mìneachadh crìoch àrd an am paramadair seòrsa. Tha e air a thuig tro Sàr-chlas ads uile sealbhaichte na h-argamaidean seachad ann an ceàrn eadar camagan. Bidh e a 'coimhead air mar a leanas: chlas Paidhir . Anns an dòigh seo, a 'cruinneachadh a' lorg àite an paramadair T Faodar àite no Àireamh chlas no aon de na subclasses.

'S e seo cumanta cuirm. Bacaidhean sin a tha tric air a chleachdadh a thoirt seachad co-chòrdalachd seòrsa crìochan ann an aon chlas. Beachdaich air mar eisimpleir ann an clas againn Paidhir: chlas Paidhir . An seo tha sinn ag innse na compiler gu bheil an seòrsa T a dh'fhaodas a bhith tràighte, agus V seòrsa feumaidh e bhith an dara cuid an t-seòrsa no aon de na subclasses.

Bacaidh a ' "bhonn"' S e dìreach an aon dòigh, ach an àite an fhacail 'sìneadh gu litreachadh an fhacail super. Tha sin air an seòrsachadh clas Paidhir ag ràdh gu bheil an àite T Faodar àite no an ArrayList, no chlas sam bith no eadar-aghaidh gu bheil e a shealbhaicheas.

Coitcheann Java dòighean agus constructors

Ann an Java, coitcheannais a chur an sàs chan ann a mhàin air na clasaichean, ach cuideachd dòighean. Mar eisimpleir, coitcheann san dòigh Faodar ghairm ann gu cunbhalach-seòmar-sgoile.

Mar a chithear ann am figear gu h-àrd, a 'ad farsaing air dòigh eil mòran dheth. Enough mus tilleadh an seòrsa dòigh a chur air a 'cheàrn eadar camagan, agus a' sònrachadh an t-seòrsa ann an crìochan orra.

Ma tha h-uile càil coltach ris an t constructor:

Ceàrn ann an camagan a 'chùis seo a chur an làthair an ainm an dealbhaiche, oir tha e air tilleadh luach sam bith. Mar thoradh air an dà chuid prògraman bidh:

Integer

String

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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