Razlika med razredi in strukturami

Razredi proti strukturam

Nekateri od glavnih konceptov objektno orientiranih (OO) programskih jezikov so kapsulacija, dedovanje in polimorfizem. Razred in struktura sta dve konstrukciji / orodju OO, ki programerjem pomagata doseči te koncepte v večini obstoječih programskih jezikov OO (Java ne nudi struktur). Razredi so abstraktna predstavitev predmetov iz resničnega sveta. Strukture so zelo podobne razredom s podobno uporabo, vendar imajo malo omejitev v primerjavi z razredi. Oba razreda in struktura se uporabljata za skupino skupnih podatkov.

Kaj so razredi?

Razredi prikazujejo abstraktno predstavitev predmetov iz resničnega sveta, medtem ko odnosi prikazujejo, kako je vsak razred povezan z drugimi. Tako razredi kot odnosi imajo lastnosti, ki jih imenujemo atributi. Metode v razredih predstavljajo ali opredeljujejo vedenje teh razredov. Metode in atributi razredov se imenujejo člani razreda. Običajno je kapsulacija dosežena tako, da atributi postanejo zasebni, hkrati pa ustvarijo javne metode, ki jih je mogoče uporabiti za dostop do teh lastnosti. Predmet je primerek razreda. Dedovanje uporabniku omogoča razširitev razredov (imenovanih podklasi) iz drugih razredov (imenovanih super klase). Polimorfizem omogoča programerju, da zamenja objekt razreda namesto predmeta njegovega super razreda. Običajno samostalniki, ki jih najdemo v definiciji problema, postanejo razredi v programu. In podobno glagoli postanejo metode. Javni, zasebni in zaščiteni so tipični modifikatorji dostopa, ki se uporabljajo za razrede. Diagram razredov prikazuje razrede sistemov, odnose med razredi in njihove lastnosti.

Kaj so strukture?

Kot smo že omenili, so strukture zelo podobne razredom s podobno uporabo, vendar so nekoliko omejene zmogljivosti kot razredi. Pravzaprav lahko razrede štejemo kot razširitev struktur. Na primer, strukture so enake kot razredi v C ++, vendar imajo privzeto javne člane. Uporabnik lahko definira strukturo, ki predstavlja sestavljen tip. Podobno kot razredi, tudi strukture vsebujejo člane, ki lahko pripadajo številnim vrstam. Struktura ključnih besed se uporablja za definiranje strukture v C in C ++, medtem ko se ključna struktura uporablja za isto v .NET programskih jezikih.

Kakšna je razlika med razredi in strukturami?

Čeprav sta razreda in strukture podobni konstrukciji, ki jih najdemo v programskih jezikih, imata neznatne razlike. Običajno je razred razširitev strukture, zato imajo strukture nekaj relativnih omejitev. Na primer, strukture se lahko obravnavajo enako kot razredi v C ++, vendar člani v razredih privzeto niso javni (za razliko od struktur). To dejansko pomeni, da lahko z ustreznimi modifikatorji dostopa v C ++ določite razred in strukturo z popolnoma enakimi lastnostmi. Vendar v C strukture ne morejo vsebovati nobenih funkcij ali preobremenjenih operacij. Ključne besede razred in struktura se uporabljajo za definiranje razreda in strukture v C ++. Ko gre za jezike .NET (C #, VB.NET itd.), Je razred referenčni tip, medtem ko je struktura vrednostni tip. Običajno se strukture uporabljajo za manjše predmete, vendar se razredi uporabljajo za večje predmete, ki se v pomnilniku hranijo dlje časa.