Što je niz klasa?

U objektno orijentiranom računalnom programiranju, niz klasa može se odnositi na jednu od dvije vrste struktura podataka. Neki programeri koriste pojam za opisivanje standardnog tipa podataka niza koji se sastoji od elemenata koji su objektne instance dane klase. Također može biti inkapsulirani objekt polja klase, također poznat kao objekt omotača, koji se koristi umjesto skalarnog niza kako bi se razne metode učinile dostupnim za korištenje u upravljanju nizom. Iako može postojati složenija funkcionalnost, klasa polja omota zapravo se po konceptu ne razlikuje od objekata omota za druge skalarne tipove podataka kao što su cijeli brojevi ili znakovi. U oba slučaja, struktura se može koristiti samo unutar konteksta objektno orijentiranog programskog jezika koji podržava klase.

Prva definicija polja klasa identificira ga kao standardni tip podataka niza koji je deklariran da sadrži objekte instancirane iz jedne specifične klase. To se obično radi kada se drži skup niz objekata, posebno kada je poznat maksimalan broj objekata tako da se niz ne deklarira s prevelikom količinom elemenata. Polimorfni mehanizmi u objektno orijentiranom programiranju znače da korištenje polja klasa može biti vrlo dinamično, jer može sadržavati generičku superklasu, dopuštajući da se razne podklase drže kao elementi unatoč njihovim različitim implementacijama. Međutim, jedna komplikacija pri korištenju polja klasa može nastati kada je broj elemenata nepoznat i ili raste veći od definirane veličine polja, ili je vrlo mali, ostavljajući izgubljen memorijski prostor dodijeljen nizu. Rješenje je korištenje objekata tipa zbirke kao što su vektori ili popisi nizova umjesto skalarnog niza kojem se ne može promijeniti veličina.

Druga definicija polja klase je objekt koji sadrži skalarni niz, ali također pruža niz metoda za manipulaciju i promjenu polja. Neki jezici implementiraju vrlo učinkovite algoritme za sortiranje i pretraživanje unutar omota polja klase. Još jedna prednost u korištenju niza koji se implementira kao klasa je ta što se klasa može lako proslijediti i mijenjati različitim funkcijama i metodama, osobito ako je osnovna klasa niza potomak generičke klase objekata. Niz klasa često je osnova za druge vrste klasa zasnovanih na nizu u programskoj biblioteci, kao što je popis nizova ili hash tablica. Dodatno, neki jezici dopuštaju proširenje klase polja, što znači da korisnik može redefinirati neke od osnovnih metoda s specijaliziranijim implementacijama, zadržavajući osnovnu funkcionalnost klase.