Triedy verzus štruktúry
Niektoré z hlavných konceptov objektovo orientovaných (OO) programovacích jazykov sú zapuzdrenie, dedičnosť a polymorfizmus. Trieda a Štruktúra sú dva z OO konštrukcií/nástrojov, ktoré pomáhajú programátorom dosiahnuť tieto koncepty vo väčšine existujúcich OO programovacích jazykov (Java neposkytuje štruktúry). Triedy sú abstraktnou reprezentáciou objektov reálneho sveta. Štruktúry sú veľmi podobné triedam s podobným využitím, ale v porovnaní s triedami majú málo obmedzení. Triedy aj štruktúra sa používajú na zoskupenie podobného typu údajov dohromady.
Čo sú triedy?
Triedy zobrazujú abstraktnú reprezentáciu objektov skutočného sveta, zatiaľ čo vzťahy zobrazujú, ako je každá trieda prepojená s ostatnými. Triedy aj vzťahy majú vlastnosti nazývané atribúty. Metódy v triedach reprezentujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Zapuzdrenie sa zvyčajne dosiahne tak, že sa atribúty stanú súkromnými, pričom sa vytvoria verejné metódy, ktoré možno použiť na prístup k týmto atribútom. Objekt je inštanciou triedy. Dedičnosť umožňuje používateľovi rozširovať triedy (nazývané podtriedy) z iných tried (nazývaných supertriedy). Polymorfizmus umožňuje programátorovi nahradiť objekt triedy namiesto objektu svojej nadtriedy. Zvyčajne sa podstatné mená nachádzajúce sa v definícii problému priamo stanú triedami v programe. A podobne aj slovesá sa stávajú metódami. Verejné, súkromné a chránené sú typické modifikátory prístupu používané pre triedy. Diagram tried zobrazuje triedy systémov, vzťahy medzi triedami a ich atribúty.
Čo sú štruktúry?
Ako už bolo spomenuté vyššie, štruktúry sú veľmi podobné triedam s podobným využitím, ale majú mierne obmedzené možnosti ako triedy. V skutočnosti možno triedy považovať za rozšírenie štruktúr. Napríklad štruktúry sú rovnaké ako triedy v C++, ale štandardne majú verejných členov. Používateľ môže definovať štruktúru, ktorá predstavuje typ, ktorý je zložený. Podobne ako triedy, štruktúry obsahujú členy, ktoré môžu patriť do mnohých typov. Kľúčové slovo struct sa používa na definovanie štruktúry v C a C++, zatiaľ čo kľúčové slovo Structure sa používa na to isté v programovacích jazykoch. NET.
Aký je rozdiel medzi triedami a štruktúrami?
Napriek tomu, že triedy aj štruktúry sú podobné konštrukcie nájdené v programovacích jazykoch, majú jemné rozdiely. Typicky je trieda rozšírením štruktúry, a preto majú štruktúry určité relatívne obmedzenia. Napríklad štruktúry možno považovať za rovnaké ako triedy v C++, ale členovia nie sú štandardne v triedach verejné (na rozdiel od štruktúr). To v skutočnosti znamená, že môžete definovať triedu a štruktúru s presne rovnakými charakteristikami pomocou vhodných modifikátorov prístupu v C++. V jazyku C však štruktúry nemôžu obsahovať žiadne funkcie ani preťažené operácie. Kľúčové slová class a struct sa používajú na definovanie triedy a štruktúry v C++. Pokiaľ ide o jazyky. NET (C, VB. NET atď.), trieda je referenčný typ, zatiaľ čo štruktúra je typ hodnoty. A zvyčajne sa štruktúry používajú pre menšie objekty, ale triedy sa používajú pre väčšie objekty, ktoré sú uchovávané v pamäti na dlhšie obdobie.