Kas yra klasių masyvas?

Objektinio kompiuterio programavimo metu klasių masyvas gali reikšti vieną iš dviejų duomenų struktūrų tipų. Kai kurie programuotojai naudoja šį terminą apibūdindami standartinį masyvo duomenų tipą, sudarytą iš elementų, kurie yra tam tikros klasės objektų egzemplioriai. Tai taip pat gali būti įkapsuliuotas klasės masyvo objektas, taip pat žinomas kaip įvyniojimo objektas, naudojamas vietoj skaliarinio masyvo, kad būtų galima naudoti įvairius metodus, skirtus valdyti masyvą. Nors gali būti ir sudėtingesnių funkcijų, įpakavimo masyvo klasė tikrai nesiskiria nuo kitų skaliarinių duomenų tipų, tokių kaip sveikieji skaičiai ar simboliai, įpakavimo objektų. Abiem atvejais struktūra gali būti naudojama tik objektinės programavimo kalbos, kuri palaiko klases, kontekste.

Pirmajame klasių masyvo apibrėžime jis identifikuojamas kaip standartinis masyvo duomenų tipas, kuris deklaruojamas turintis objektus, sukurtus iš vienos konkrečios klasės. Tai dažniausiai daroma, kai yra nustatyta objektų serija, ypač kai žinomas maksimalus objektų skaičius, todėl masyvas nėra deklaruojamas su per dideliu elementų kiekiu. Objektinio programavimo polimorfiniai mechanizmai reiškia, kad klasių masyvo naudojimas gali būti labai dinamiškas, nes jis gali turėti bendrą superklasę, leidžiančią įvairius poklasius laikyti elementais, nepaisant jų skirtingo įgyvendinimo. Tačiau naudojant klasių masyvą gali kilti viena komplikacija, kai elementų skaičius nežinomas ir išauga didesnis nei nustatytas masyvo dydis arba yra labai mažas, todėl masyvei paliekama tuščia atminties vieta. Sprendimas yra naudoti kolekcijos tipo objektus, pvz., vektorius arba masyvo sąrašus, o ne skaliarinį masyvą, kurio dydis negali būti pakeistas.

Antrasis klasių masyvo apibrėžimas yra objektas, kuriame yra skaliarinis masyvas, bet taip pat yra keletas metodų, kaip manipuliuoti ir keisti masyvą. Kai kurios kalbos įdiegia labai efektyvius rūšiavimo ir paieškos algoritmus klasės masyvo įpakavime. Kitas privalumas naudojant masyvą, kuris yra įgyvendintas kaip klasė, yra tas, kad klasę galima lengvai perduoti ir pakeisti įvairiomis funkcijomis ir metodais, ypač jei pagrindinė masyvo klasė yra kilusi iš bendros objektų klasės. Klasių masyvas dažnai yra kitų tipų masyvo klasių programavimo bibliotekoje pagrindas, pvz., masyvo sąrašas arba maišos lentelė. Be to, kai kurios kalbos leidžia išplėsti masyvo klasę, o tai reiškia, kad vartotojas gali iš naujo apibrėžti kai kuriuos pagrindinius metodus, naudodamas labiau specializuotus diegimus, išsaugodamas pagrindines klasės funkcijas.