Klase vs strukture
Neki od glavnih koncepata objektno orijentiranih (OO) programskih jezika su enkapsulacija, nasljeđivanje i polimorfizam. Klasa i struktura dvije su OO konstrukcije/alati koji programerima pomažu u postizanju ovih koncepata unutar većine postojećih OO programskih jezika (Java ne pruža strukture). Klase su apstraktni prikaz objekata stvarnog svijeta. Strukture su vrlo slične klasama sa sličnom upotrebom, ali imaju nekoliko ograničenja u usporedbi s klasama. I klase i struktura koriste se za grupiranje slične vrste podataka, zajedno.
Što su tečajevi?
Klase opisuju apstraktni prikaz objekata stvarnog svijeta, dok odnosi opisuju kako je svaka klasa povezana s drugima. I klase i odnosi imaju svojstva koja se zovu atributi. Metode u klasama predstavljaju ili definiraju ponašanje tih klasa. Metode i atributi klasa nazivaju se članovima klase. Tipično, enkapsulacija se postiže postavljanjem atributa privatnim, dok se stvaraju javne metode koje se mogu koristiti za pristup tim atributima. Objekt je instanca klase. Nasljeđivanje omogućuje korisniku da proširi klase (zvane podklase) iz drugih klasa (zvane super klase). Polimorfizam omogućuje programeru da zamijeni objekt klase umjesto objekta njegove super klase. Tipično, imenice koje se nalaze u definiciji problema izravno postaju klase u programu. I slično, glagoli postaju metode. Javni, privatni i zaštićeni tipični su modifikatori pristupa koji se koriste za klase. Dijagram klasa prikazuje klase sustava, odnose između klasa i njihove atribute.
Što su strukture?
Kao što je gore spomenuto, strukture su vrlo slične klasama sa sličnom upotrebom, ali imaju malo ograničene mogućnosti od klasa. Zapravo, klase se mogu smatrati proširenjem struktura. Na primjer, strukture su iste kao klase u C++, ali prema zadanim postavkama imaju javne članove. Korisnik može definirati strukturu koja predstavlja kompozitni tip. Slično klasama, strukture sadrže članove koji mogu pripadati mnogim tipovima. Ključna riječ struct koristi se za definiranje strukture u C i C++, dok se ključna riječ Structure koristi za isto u. NET programskim jezicima.
Koja je razlika između klasa i struktura?
Iako su i klase i strukture slične konstrukcije koje se nalaze u programskim jezicima, one imaju suptilne razlike. Tipično, klasa je proširenje strukture, pa stoga strukture imaju neka relativna ograničenja. Na primjer, strukture se mogu smatrati istima kao i klase u C++, ali članovi prema zadanim postavkama nisu javni u klasama (za razliku od struktura). To zapravo znači da možete definirati klasu i strukturu s potpuno istim karakteristikama korištenjem odgovarajućih modifikatora pristupa u C++. Međutim, u C-u strukture ne mogu sadržavati nikakve funkcije ili preopterećene operacije. Ključne riječi class i struct koriste se za definiranje klase odnosno strukture u C++. Kada su u pitanju. NET jezici (C, VB. NET itd.), klasa je referentni tip, dok je struktura vrijednosni tip. I obično se strukture koriste za manje objekte, ali klase se koriste za veće objekte koji se čuvaju u memoriji duže vrijeme.