Разница между классами и структурами

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

Некоторые из основных концепций объектно-ориентированных (ОО) языков программирования - это инкапсуляция, наследование и полиморфизм. Класс и структура являются двумя из конструкций / инструментов ОО, которые помогают программистам реализовать эти концепции в большинстве существующих языков программирования ОО (Java не предоставляет структуры). Классы являются абстрактным представлением объектов реального мира. Структуры очень похожи на классы с аналогичным использованием, но имеют несколько ограничений по сравнению с классами. И классы, и структура используются для группировки данных одинакового типа вместе.

Что такое классы?

Классы изображают абстрактное представление объектов реального мира, в то время как отношения показывают, как каждый класс связан с другими. И классы, и отношения имеют свойства, называемые атрибутами. Методы в классах представляют или определяют поведение этих классов. Методы и атрибуты классов называются членами класса. Как правило, инкапсуляция достигается путем придания атрибутам приватности при создании открытых методов, которые можно использовать для доступа к этим атрибутам. Объект является экземпляром класса. Наследование позволяет пользователю расширять классы (называемые подклассами) из других классов (называемых суперклассами). Полиморфизм позволяет программисту заменить объект класса вместо объекта его суперкласса. Как правило, существительные, найденные в определении проблемы, непосредственно становятся классами в программе. И точно так же глаголы становятся методами. Public, private и protected - это типичные модификаторы доступа, используемые для классов. Диаграмма классов показывает классы систем, отношения между классами и их атрибуты..

Что такое структуры?

Как упоминалось выше, структуры очень похожи на классы с аналогичным использованием, но имеют немного ограниченные возможности, чем классы. Фактически, классы можно рассматривать как расширение структур. Например, структуры такие же, как классы в C ++, но по умолчанию они имеют открытые члены. Пользователь может определить структуру для представления составного типа. Подобно классам, структуры содержат члены, которые могут принадлежать многим типам. Ключевое слово struct используется для определения структуры в C и C ++, в то время как ключевое слово Structure используется для того же самого в языках программирования .NET..

В чем разница между классами и структурами?

Несмотря на то, что и классы, и структуры являются похожими конструкциями, присутствующими в языках программирования, они имеют небольшие различия. Как правило, класс является расширением структуры, и поэтому структуры имеют некоторые относительные ограничения. Например, структуры могут рассматриваться как классы в C ++, но члены по умолчанию не являются открытыми в классах (в отличие от структур). На самом деле это означает, что вы можете определить класс и структуру с одинаковыми характеристиками, используя соответствующие модификаторы доступа в C ++. Однако в C структуры не могут содержать никаких функций или перегруженных операций. Ключевые слова class и struct используются для определения класса и структуры в C ++ соответственно. Когда речь идет о языках .NET (C #, VB.NET и т. Д.), Класс является ссылочным типом, а структура - типом значения. И обычно структуры используются для более мелких объектов, но классы используются для более крупных объектов, которые хранятся в памяти в течение более длительных периодов времени..