Diferența dintre clase și structuri

Clasele vs. structurile

Unele dintre conceptele principale ale limbajelor de programare orientate pe obiecte (OO) sunt încapsularea, moștenirea și polimorfismul. Clasa și structura sunt două dintre instrumentele / instrumentele OO, care ajută programatorii să realizeze aceste concepte în majoritatea limbajelor de programare OO (Java nu oferă structuri). Clasele reprezintă o reprezentare abstractă a obiectelor din lumea reală. Structurile sunt foarte asemănătoare cu clasele cu o utilizare similară, dar au puține limitări în comparație cu clasele. Ambele clase și structură sunt utilizate pentru a grupa un tip similar de date, împreună.

Ce sunt clasele?

Clasele descriu reprezentarea abstractă a obiectelor din lumea reală, în timp ce relațiile descriu modul în care fiecare clasă este conectată la alții. Ambele clase și relații au proprietăți numite atribute. Metodele din clase reprezintă sau definesc comportamentul acestor clase. Metodele și atributele clasei sunt numite membrii clasei. În mod tipic, încapsularea este realizată prin crearea atributelor private, în timp ce se creează metode publice care pot fi utilizate pentru a accesa atributele respective. Un obiect este instanța unei clase. Moștenirea permite utilizatorului să extindă clase (numite subclase) din alte clase (numite super-clase). Polimorfismul permite programatorului să înlocuiască un obiect al unei clase în locul unui obiect din clasa sa superioară. De obicei, substantive găsite în definiția problemei devin direct clase în program. Și în mod similar, verbele devin metode. Public, privat și protejat sunt modificatorii tipici de acces folosiți pentru cursuri. O diagramă de clasă prezintă clasele sistemelor, relațiile dintre clase și atributele acestora.

Ce sunt Structurile?

După cum sa menționat mai sus, structurile sunt foarte asemănătoare cu clasele cu o utilizare similară, dar sunt capabile ușor limitate decât clasele. De fapt, clasele pot fi considerate ca o extensie a structurilor. De exemplu, structurile sunt aceleași ca și clasele din C ++, dar au implicit membri publici. O structură poate fi definită de utilizator pentru a reprezenta un tip care este compus. Similar cu clasele, structurile conțin membri care pot aparține mai multor tipuri. Cuvântul cheie struct este utilizat pentru a defini o structură în C și C ++, în timp ce structura de cuvinte cheie este folosită pentru același lucru în limbile de programare .NET.

Care este diferența dintre clase și structuri?

Chiar dacă ambele clase și structuri sunt construcții similare găsite în limbile de programare, ele au diferențe subtile. În mod obișnuit, clasa este o extensie a structurii și, prin urmare, structurile au anumite limitări relative. De exemplu, structurile pot fi considerate aceleași ca și clasele din C ++, dar membrii nu sunt publici implicit în clase (spre deosebire de structuri). Acest lucru înseamnă, de fapt, că puteți defini o clasă și o structură cu exact aceleași caracteristici utilizând modificatorii de acces corespunzători din C ++. Cu toate acestea, în C, structurile nu pot conține funcții sau operații supraîncărcate. Cuvinte cheie class și struct sunt folosite pentru a defini o clasă și o structură în C ++, respectiv. Când vine vorba de limbile .NET (C #, VB.NET, etc.), clasa este un tip de referință, în timp ce structura este un tip de valoare. De obicei, structurile sunt folosite pentru obiecte mai mici, dar clasele sunt folosite pentru obiecte mai mari care sunt păstrate în memorie pentru perioade mai lungi.