Різниця між класами та структурами

Класи проти структур

Деякі з основних концепцій об'єктно-орієнтованих (OO) мов програмування - це інкапсуляція, успадкування та поліморфізм. Клас і структура - це дві конструкції / інструменти ОО, які допомагають програмістам досягти цих понять у більшості існуючих мов програмування OO (Java не забезпечує структури). Заняття - це абстрактне зображення об'єктів реального світу. Структури дуже схожі на класи з подібним використанням, але мають невеликі обмеження порівняно з класами. І класи, і структура використовуються для групування однотипних даних разом.

Що таке заняття?

Класи зображують абстрактне зображення об'єктів реального світу, тоді як відносини зображують, як кожен клас пов'язаний з іншими. І класи, і відносини мають властивості, звані атрибутами. Методи в класах представляють або визначають поведінку цих класів. Методи та атрибути класів називаються членами класу. Як правило, інкапсуляція досягається шляхом атрибутів приватними, створюючи загальнодоступні методи, які можуть бути використані для доступу до цих атрибутів. Об'єкт - це примірник класу. Спадкування дозволяє користувачеві розширювати класи (звані підкласи) з інших класів (звані суперкласи). Поліморфізм дозволяє програмісту замінити об’єкт класу замість об’єкта його суперкласу. Як правило, іменники, знайдені у визначенні проблеми, безпосередньо стають класами програми. І аналогічно дієслова стають методами. Загальнодоступні, приватні та захищені - це типові модифікатори доступу, які використовуються для занять. Діаграма класів показує класи систем, зв’язки між класами та їх атрибути.

Що таке структури?

Як було сказано вище, структури дуже схожі на класи з подібним використанням, але мають дещо обмежені можливості, ніж класи. Насправді класи можна розглядати як розширення до структур. Наприклад, структури такі ж, як і класи в C ++, але вони мають загальнодоступних членів. Користувач може визначити структуру для відображення композиційного типу. Подібно до класів, структури містять членів, які можуть належати до багатьох типів. Структура ключових слів використовується для визначення структури в C та C ++, тоді як структура ключових слів використовується для однієї і тієї ж мови в програмах .NET.

Яка різниця між класами та структурами?

Незважаючи на те, що і класи, і структури є подібними конструкціями, що зустрічаються в мовах програмування, вони мають тонкі відмінності. Зазвичай клас є розширенням структури, і тому структури мають деякі відносні обмеження. Наприклад, структури можна вважати такими ж, як і класи в C ++, але члени не є загальнодоступними в класах (на відміну від структур). Це фактично означає, що ви можете визначити клас та структуру з абсолютно однаковими характеристиками, використовуючи відповідні модифікатори доступу в C ++. Однак у C структури не можуть містити жодних функцій або перевантажених операцій. Ключові слова клас та структура використовуються для визначення класу та структури відповідно до C ++. Що стосується мов .NET (C #, VB.NET тощо), клас - це еталонний тип, тоді як структура - тип значення. І зазвичай структури використовуються для менших об'єктів, але класи використовуються для більших об'єктів, які зберігаються в пам'яті довше.