Mis on klassi massiiv?

Objektorienteeritud arvutiprogrammeerimises võib klassimassiivi viidata ühele kahest andmestruktuuri tüübist. Mõned programmeerijad kasutavad seda terminit standardse massiivi andmetüübi kirjeldamiseks, mis koosneb elementidest, mis on antud klassi objektieksemplarid. See võib olla ka klassimassiivi kapseldatud objekt, mida tuntakse ka ümbrisobjektina, mida kasutatakse skalaarmassiivi asemel, et teha massiivi haldamiseks kättesaadavaks mitmesuguseid meetodeid. Ehkki funktsioonid võivad olla keerulisemad, ei erine ümbrismassiivi klass oma kontseptsioonilt tegelikult muude skalaarsete andmetüüpide (nt täisarvud või märgid) ümbrisobjektidest. Mõlemal juhul saab struktuuri kasutada ainult klasse toetava objektorienteeritud programmeerimiskeele kontekstis.

Klassimassiivi esimene definitsioon identifitseerib selle standardse massiivi andmetüübina, mis on deklareeritud ühest kindlast klassist pärit objektide hoidmiseks. Seda tehakse tavaliselt objektide komplekti hoidmisel, eriti kui on teada maksimaalne objektide arv, nii et massiivi ei deklareerita liigse hulga elementidega. Objektorienteeritud programmeerimise polümorfsed mehhanismid tähendavad, et klassimassiivi kasutamine võib olla väga dünaamiline, kuna see võib sisaldada üldist ülemklassi, mis võimaldab hoida mitmesuguseid alamklasse elementidena, hoolimata nende erinevatest rakendustest. Üks komplikatsioon klassimassiivi kasutamisel võib aga tekkida siis, kui elementide arv on teadmata ja kas kasvab massiivi määratletud suurusest suuremaks või on väga väike, jättes massiiviga eraldatud raisatud mäluruumi. Lahenduseks on skalaarmassiivi asemel kasutada kollektsiooni tüüpi objekte, nagu vektorid või massiiviloendid, mille suurust ei saa muuta.

Klassimassiivi teine ​​määratlus on objekt, mis sisaldab skalaarmassiivi, kuid pakub ka mitmeid meetodeid massiiviga manipuleerimiseks ja muutmiseks. Mõned keeled rakendavad klassimassiivi ümbrises väga tõhusaid sortimis- ja otsimisalgoritme. Klassina realiseeritava massiivi kasutamise teine ​​eelis on see, et klassi saab hõlpsasti edasi anda ja muuta erinevate funktsioonide ja meetoditega, eriti kui põhimassiivi klass põlvneb üldisest objektiklassist. Klassi massiiv on sageli programmeerimisteegi muud tüüpi massiivipõhiste klasside, näiteks massiiviloendi või räsitabeli aluseks. Lisaks võimaldavad mõned keeled massiiviklassi laiendada, mis tähendab, et kasutaja saab mõne põhimeetodi uuesti määratleda spetsiifilisemate rakendustega, säilitades samas klassi põhifunktsioonid.