Классы против структур
Некоторые из основных концепций объектно-ориентированных языков программирования (ОО) - это инкапсуляция, наследование и полиморфизм. Класс и Структура - это две объектно-ориентированные конструкции / инструменты, которые помогают программистам реализовать эти концепции в рамках большинства существующих объектно-ориентированных языков программирования (Java не предоставляет структур). Классы - это абстрактное представление объектов реального мира. Структуры очень похожи на классы с аналогичным использованием, но имеют несколько ограничений по сравнению с классами. И классы, и структура используются для группировки схожих типов данных вместе.
Что такое классы?
Классы отображают абстрактное представление объектов реального мира, а отношения показывают, как каждый класс связан с другими. И классы, и отношения имеют свойства, называемые атрибутами. Методы в классах представляют или определяют поведение этих классов. Методы и атрибуты классов называются членами класса. Как правило, инкапсуляция достигается за счет того, что атрибуты становятся закрытыми при создании общедоступных методов, которые могут использоваться для доступа к этим атрибутам. Объект - это экземпляр класса. Наследование позволяет пользователю расширять классы (называемые подклассами) из других классов (называемых суперклассами). Полиморфизм позволяет программисту подставить объект класса вместо объекта его суперкласса. Обычно существительные, встречающиеся в определении проблемы, непосредственно становятся классами в программе. И аналогично,глаголы становятся методами. Public, private и protected - типичные модификаторы доступа, используемые для классов. Диаграмма классов показывает классы систем, отношения между классами и их атрибуты.
Что такое структуры?
Как упоминалось выше, структуры очень похожи на классы с аналогичным использованием, но имеют несколько ограниченные возможности, чем классы. Фактически, классы можно рассматривать как расширение структур. Например, структуры такие же, как классы в C ++, но по умолчанию они имеют открытые члены. Пользователь может определить структуру для представления составного типа. Подобно классам, структуры содержат члены, которые могут принадлежать ко многим типам. Ключевое слово struct используется для определения структуры в C и C ++, а ключевое слово Structure используется для того же в языках программирования. NET.
В чем разница между классами и структурами?
Несмотря на то, что и классы, и структуры похожи на конструкции, встречающиеся в языках программирования, между ними есть тонкие различия. Обычно класс является расширением структуры, поэтому у структур есть некоторые относительные ограничения. Например, структуры можно рассматривать как классы в C ++, но члены классов по умолчанию не являются общедоступными (в отличие от структур). Фактически это означает, что вы можете определить класс и структуру с точно такими же характеристиками, используя соответствующие модификаторы доступа в C ++. Однако в C структуры не могут содержать никаких функций или перегруженных операций. Ключевые слова class и struct используются для определения класса и структуры в C ++ соответственно. Когда дело доходит до языков. NET (C #, VB. NET и т. Д.), Класс - это ссылочный тип, а структура - это тип значения. И обычноструктуры используются для более мелких объектов, но классы используются для более крупных объектов, которые хранятся в памяти в течение более длительных периодов времени.