Rozdiel medzi triedami a štruktúrami

Triedy vs š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štruktov / nástrojov, ktoré pomáhajú programátorom dosiahnuť tieto koncepty vo väčšine zo súčasných programovacích jazykov OO (Java neposkytuje štruktúry). Triedy sú abstraktným znázornením objektov skutočného sveta. Štruktúry sú veľmi podobné triedam s podobným použitím, ale v porovnaní s triedami majú len obmedzené obmedzenia. Triedy aj štruktúra sa používajú na zoskupenie podobných typov údajov dohromady.

Čo sú triedy?

Triedy zobrazujú abstraktné znázornenie objektov skutočného sveta, zatiaľ čo vzťahy ukazujú, ako je každá trieda prepojená s ostatnými. Triedy aj vzťahy majú vlastnosti nazývané atribúty. Metódy v triedach predstavujú alebo definujú správanie týchto tried. Metódy a atribúty tried sa nazývajú členovia triedy. Typicky sa zapuzdrenie dosiahne privedením atribútov do súkromia, zatiaľ čo sa vytvoria verejné metódy, ktoré sa dajú použiť na prístup k týmto atribútom. Objekt je inštanciou triedy. Dedičnosť umožňuje používateľovi rozšíriť triedy (nazývané podtriedy) z iných tried (nazývaných super triedy). Polymorfizmus umožňuje programátorovi nahradiť objekt triedy namiesto objektu jeho nadtriedy. Zvyčajne sa podstatné mená nájdené v definícii problému stávajú priamo triedami v programe. A podobne sa slovesá stávajú metódami. Typické modifikátory prístupu používané pre triedy sú verejné, súkromné ​​a chránené. Diagram tried zobrazuje triedy systémov, vzťahy medzi triedami a ich atribúty.

Čo sú štruktúry?

Ako je uvedené vyššie, štruktúry sú veľmi podobné triedam s podobným použitím, ale majú mierne obmedzené schopnosti ako triedy. V skutočnosti môžu byť triedy považované za rozšírenie štruktúr. Napríklad štruktúry sú rovnaké ako triedy v C ++, ale v predvolenom nastavení majú verejných členov. Užívateľ môže definovať štruktúru, ktorá predstavuje zložený typ. Podobne ako triedy, štruktúry obsahujú členov, 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 pre rovnaké v programovacích jazykoch .NET.

Aký je rozdiel medzi triedami a štruktúrami?

Aj keď sú triedy aj štruktúry podobné konštrukty nájdené v programovacích jazykoch, majú jemné rozdiely. Typicky je trieda rozšírením štruktúry, a preto štruktúry majú určité relatívne obmedzenia. Napríklad štruktúry sa môžu považovať za rovnaké ako triedy v C ++, ale členovia nie sú v triedach predvolene verejní (na rozdiel od štruktúr). V skutočnosti to znamená, že môžete definovať triedu a štruktúru s presne rovnakými charakteristikami pomocou vhodných modifikátorov prístupu v C ++. V C však štruktúry nemôžu obsahovať žiadne funkcie alebo 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. Štruktúry sa zvyčajne používajú pre menšie objekty, ale triedy sa používajú pre väčšie objekty, ktoré sa uchovávajú v pamäti dlhšiu dobu.