Klasside Ja Struktuuride Erinevus

Klasside Ja Struktuuride Erinevus
Klasside Ja Struktuuride Erinevus

Video: Klasside Ja Struktuuride Erinevus

Video: Klasside Ja Struktuuride Erinevus
Video: Keskkond ja tehisintellekt 2024, November
Anonim

Klassid vs struktuurid

Objektorienteeritud (OO) programmeerimiskeelte mõned peamised mõisted on kapseldamine, pärimine ja polümorfism. Klass ja struktuur on kaks OO konstruktsiooni / tööriista, mis aitavad programmeerijatel need mõisted saavutada enamikus väljuvates OO programmeerimiskeeltes (Java ei paku struktuure). Klassid on abstraktne kujutis reaalse maailma objektidest. Struktuurid on väga sarnased sarnase kasutusega klassidele, kuid neil on klassidega võrreldes vähe piiranguid. Sarnast tüüpi andmete koos rühmitamiseks kasutatakse nii klasse kui ka struktuuri.

Mis on klassid?

Klassid kujutavad reaalse maailma objektide abstraktset kujutist, seosed aga seda, 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, muutes atribuudid privaatseks, luues samas avalikud meetodid, mida saab kasutada nendele atribuutidele juurdepääsemiseks. Objekt on klassi eksemplar. Pärimine võimaldab kasutajal laiendada klasse (nn alamklassid) teistest klassidest (nn superklassid). Polümorfism võimaldab programmeerijal asendada klassi objekti selle superklassi objekti asemel. Tavaliselt muutuvad probleemi määratlusest leitud nimisõnad programmis otseselt klassideks. Ja sarnaselttegusõnadest saavad meetodid. Klassides kasutatavad tüüpilised juurdepääsumuundurid on avalik, privaatne ja kaitstud. 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 struktuurid on samad kui klassides C ++, kuid neil on vaikimisi avalikud liikmed. Kasutaja saab defineerida struktuuri, mis tähistab komposiit tüüpi. Sarnaselt klassidele sisaldavad struktuurid liikmeid, mis võivad kuuluda mitmesse tüüpi. Märksõna struct kasutatakse struktuuri määratlemiseks C ja C ++ keeles, samas kui märksõna Structure kasutatakse. NET programmeerimiskeeltes sama jaoks.

Mis vahe on klassidel ja struktuuridel?

Kuigi nii klassid kui ka struktuurid on programmeerimiskeeltes sarnased konstruktsioonid, on neil peent erinevusi. Tavaliselt on klass struktuuri laiendus ja seetõttu on struktuuridel teatud suhtelised piirangud. Näiteks võib struktuure pidada samadeks kui klassides C ++, kuid liikmed pole klassides vaikimisi avalikud (erinevalt struktuuridest). See tähendab tegelikult seda, et saate määratleda täpselt samade omadustega klassi ja struktuuri, kasutades C ++ vastavaid juurdepääsumuundureid. Kuid C-s ei saa struktuurid sisaldada ühtegi funktsiooni ega ülekoormatud toiminguid. Märksõnu klass ja struktuur kasutatakse vastavalt klassi ja struktuuri määratlemiseks C ++ keeles. Kui tegemist on. NET-keeltega (C #, VB. NET jne), on klass viitetüüp, struktuur aga väärtuse tüüp. Ja tavaliselt,struktuure kasutatakse väiksemate objektide jaoks, kuid klasside jaoks kasutatakse suuremaid objekte, mis jäävad mällu pikemaks ajaks.

Soovitatav: