Klasside ja struktuuride erinevus

Klassid vs struktuurid

Objektorienteeritud (OO) programmeerimiskeele peamised mõisted on kapseldamine, pärimine ja polümorfism. Klass ja struktuur on kaks OO konstruktsiooni / tööriista, mis aitavad programmeerijatel saavutada neid kontseptsioone enamikus olemasolevates OO programmeerimiskeeltes (Java ei paku struktuure). Klassid on reaalse maailma objektide abstraktne kujutis. Konstruktsioonid on väga sarnased sarnase kasutusotstarbega klassidele, kuid klassidega võrreldes on neil vähe piiranguid. Mõlemat klassi ja struktuuri kasutatakse sama tüüpi andmete rühmitamiseks.

Mis on klassid?

Klassid kujutavad reaalmaailma objektide abstraktset kujutamist, samas kui suhted kujutavad, kuidas iga klass on teistega seotud. Nii klassidel kui ka suhetel on omadused, mida nimetatakse atribuutideks. Klasside meetodid tähistavad või määratlevad nende klasside käitumist. Klasside meetodeid ja atribuute nimetatakse klassi liikmeteks. Tavaliselt saavutatakse kapseldamine atribuutide privaatseks muutmisega, luues samal ajal avalikud meetodid, mida saab kasutada nendele atribuutidele juurdepääsu saamiseks. Objekt on klassi eksemplar. Pärimine võimaldab kasutajal laiendada klasse (nn alamklasse) teistest klassidest (nn superklassid). Polümorfism võimaldab programmeerijal oma superklassi objekti asemel asendada klassi objekt. Tavaliselt muutuvad probleemi määratlusest leitud nimisõnad programmis vahetult klassideks. Ja samamoodi saavad verbidest meetodid. Tundides kasutatavad tüüpilised juurdepääsu modifikaatorid on avalik, privaatne ja kaitstud. Klasside diagramm näitab süsteemide klasse, klassidevahelisi suhteid ja nende atribuute.

Mis on struktuurid?

Nagu eespool mainitud, on struktuurid väga sarnased samalaadse kasutusega klassidele, kuid nende võimalused on pisut piiratud kui klassidel. Tegelikult võib klasse käsitleda laiendusena struktuuridele. Näiteks on struktuurid samad, mis klassides C ++, kuid vaikimisi on neil avalikud liikmed. Kasutaja saab määratleda struktuuri, mis tähistab liittüüpi. Sarnaselt klassidele sisaldavad struktuurid liikmeid, mis võivad kuuluda mitut tüüpi. Märksõna struct kasutatakse struktuuri määratlemiseks C ja C ++ keeles, märksõna Structure kasutatakse sama .NET programmeerimiskeeltes.

Mis vahe on klassidel ja struktuuridel??

Ehkki mõlemad klassid ja struktuurid on programmeerimiskeeltes sarnased konstruktsioonid, on neil väikesi erinevusi. Tavaliselt on klass struktuuri laiendus ja seetõttu on struktuuridel mõned suhtelised piirangud. Näiteks võib struktuure pidada samadeks, mis klassides C ++, kuid liikmed pole klassides vaikimisi avalikud (erinevalt struktuuridest). See tähendab tegelikult, et saate määratleda täpselt samade karakteristikutega klassi ja struktuuri, kasutades sobivaid juurdepääsu modifikaatoreid C ++-s. C-s ei saa struktuurid sisaldada mingeid funktsioone ega ülekoormatud toiminguid. Klassi ja struktuuri määratlemiseks kasutatakse C ++ klassis märksõnu klass ja struct. .NET-keelte (C #, VB.NET jne) puhul on klass viite tüüp, struktuur aga väärtuse tüüp. Ja tavaliselt kasutatakse struktuure väiksemate objektide jaoks, kuid klasse kasutatakse suuremate objektide jaoks, mida hoitakse mälus pikemat aega.