Klase vs strukture
Neki od glavnih koncepata objektno orijentisanih (OO) programskih jezika su enkapsulacija, nasljeđivanje i polimorfizam. Klasa i struktura su dvije OO konstrukcije/alati, koji pomažu programerima da postignu ove koncepte u većini postojećih OO programskih jezika (Java ne pruža strukture). Klase su apstraktni prikaz objekata stvarnog svijeta. Strukture su veoma slične klasama sa sličnom upotrebom, ali imaju malo ograničenja u poređenju sa klasama. I klase i struktura se koriste za grupisanje sličnih tipova podataka, zajedno.
Šta su časovi?
Klase opisuju apstraktni prikaz objekata stvarnog svijeta, dok odnosi opisuju kako je svaka klasa povezana s drugima. I klase i relacije imaju svojstva koja se nazivaju atributi. Metode u klasama predstavljaju ili definiraju ponašanje ovih klasa. Metode i atributi klasa nazivaju se članovima klase. Obično se enkapsulacija postiže tako što se atributi čine privatnim, dok se kreiraju javne metode koje se mogu koristiti za pristup tim atributima. Objekt je instanca klase. Nasljeđivanje omogućava korisniku da proširi klase (zvane podklase) iz drugih klasa (zvane super klase). Polimorfizam omogućava programeru da zameni objekat klase umesto objekta njegove super klase. Tipično, imenice koje se nalaze u definiciji problema direktno postaju klase u programu. I slično, glagoli postaju metode. Javni, privatni i zaštićeni su tipični modifikatori pristupa koji se koriste za klase. Dijagram klasa prikazuje klase sistema, odnose između klasa i njihove atribute.
Šta 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. U stvari, klase se mogu smatrati proširenjem struktura. Na primjer, strukture su iste kao i klase u C++-u, ali po defaultu imaju javne članove. Korisnik može definirati strukturu da predstavlja kompozitni tip. Slično klasama, strukture sadrže članove koji mogu pripadati mnogim tipovima. Ključna riječ struct se koristi 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, i stoga strukture imaju neka relativna ograničenja. Na primjer, strukture se mogu smatrati istim kao i klase u C++, ali članovi nisu po defaultu javni u klasama (za razliku od struktura). To zapravo znači da možete definirati klasu i strukturu s potpuno istim karakteristikama koristeći odgovarajuće modifikatore 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 se koriste za definiranje klase i strukture u C++-u, respektivno. Kada su u pitanju. NET jezici (C, VB. NET, itd.), klasa je referentni tip, dok je struktura tip vrijednosti. I obično se strukture koriste za manje objekte, ali klase se koriste za veće objekte koji se duže čuvaju u memoriji.