Klassid vs struktuurid
Objektorienteeritud (OO) programmeerimiskeelte mõned põhimõisted on kapseldamine, pärimine ja polümorfism. Klass ja struktuur on kaks OO konstruktsiooni/tööriista, mis aitavad programmeerijatel neid kontseptsioone saavutada enamikus väljuvates OO programmeerimiskeeltes (Java ei paku struktuure). Klassid on reaalse maailma objektide abstraktne esitus. Struktuurid on väga sarnased sarnase kasutusega klassidele, kuid neil on klassidega võrreldes vähe piiranguid. Sarnast tüüpi andmete rühmitamiseks kasutatakse nii klasse kui ka struktuuri.
Mis on klassid?
Klassid kujutavad reaalse maailma objektide abstraktset esitust, samas kui seosed näitavad, kuidas iga klass on teistega seotud. Nii klassidel kui ka suhetel on omadused, mida nimetatakse atribuutideks. Klasside meetodid esindavad 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ääsuks. Objekt on klassi eksemplar. Pärimine võimaldab kasutajal laiendada klasse (nn alamklassid) teistest klassidest (nimetatakse superklassideks). Polümorfism võimaldab programmeerijal asendada klassi objektiga selle superklassi objektiga. Tavaliselt muutuvad probleemi definitsioonis leitud nimisõnad programmis otse klassideks. Ja samamoodi muutuvad verbid meetoditeks. Avalik, privaatne ja kaitstud on tüüpilised klasside jaoks kasutatavad juurdepääsu muutjad. Klassiskeem näitab süsteemide klasse, klassidevahelisi seoseid ja nende atribuute.
Mis on struktuurid?
Nagu eespool mainitud, on struktuurid väga sarnased sarnase kasutusega klassidele, kuid nende võimalused on klassidest veidi piiratud. Tegelikult võib klasse pidada struktuuride laienduseks. Näiteks on struktuurid samad, mis C++ klassid, kuid neil on vaikimisi avalikud liikmed. Kasutaja saab määratleda struktuuri, mis esindab liittüüpi. Sarnaselt klassidele sisaldavad struktuurid liikmeid, mis võivad kuuluda paljudesse tüüpidesse. Märksõna struct kasutatakse struktuuri määratlemiseks C ja C++ keeles, samas kui märksõna Structure kasutatakse sama jaoks. NET-i programmeerimiskeeltes.
Mis vahe on klassidel ja struktuuridel?
Kuigi nii klassid kui ka struktuurid on sarnased programmeerimiskeeltes leiduvad konstruktsioonid, on neil siiski väikesed erinevused. Tavaliselt on klass struktuuri laiendus ja seetõttu on struktuuridel mõned suhtelised piirangud. Näiteks võib struktuure pidada samadeks klassidega C++ keeles, kuid liikmed ei ole klassides vaikimisi avalikud (erinev alt struktuuridest). See tähendab tegelikult, et saate defineerida täpselt samade omadustega klassi ja struktuuri, kasutades C++ vastavaid juurdepääsumuutusi. Kuid C-s ei tohi struktuurid sisaldada funktsioone ega ülekoormatud toiminguid. Märksõnu klass ja struct kasutatakse vastav alt klassi ja struktuuri määratlemiseks C++ keeles. Kui rääkida. NET-i keeltest (C, VB. NET jne), siis klass on viitetüü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.