Разлика между класове и структури

Разлика между класове и структури
Разлика между класове и структури

Видео: Разлика между класове и структури

Видео: Разлика между класове и структури
Видео: #Загадки #украинской_#хаты. #Музей_#Пирогово, #Киев, 2020 2024, Декември
Anonim

Класове срещу структури

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

Какво представляват класовете?

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

Какво представляват структурите?

Както бе споменато по-горе, структурите са много подобни на класове с подобна употреба, но са малко ограничени възможности от класовете. Всъщност класовете могат да се разглеждат като разширение на структурите. Например структурите са същите като класовете в C ++, но по подразбиране имат публични членове. Структурата може да бъде дефинирана от потребителя, за да представлява тип, който е композитен. Подобно на класовете, структурите съдържат членове, които могат да принадлежат към много типове. Ключовата дума struct се използва за дефиниране на структура в C и C ++, докато ключовата дума Structure се използва за същата в езиците за програмиране. NET.

Каква е разликата между класове и структури?

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

Препоръчано: