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

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

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

Видео: Разлика между класове и структури
Видео: Экономика 10 класс (Урок№10 - Конкуренция и ее виды.) 2024, Юли
Anonim

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

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

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

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

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

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

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

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

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