Razredi proti strukturam
Nekateri glavni koncepti objektno usmerjenih programskih jezikov (OO) so enkapsulacija, dedovanje in polimorfizem. Razred in struktura sta dva izmed konstruktov/orodij 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 združevanje podobnih vrst podatkov skupaj.
Kaj so razredi?
Razredi prikazujejo abstraktno predstavitev predmetov iz resničnega sveta, medtem ko razmerja prikazujejo, kako je vsak razred povezan z drugimi. Tako razredi kot razmerja imajo lastnosti, imenovane atributi. Metode v razredih predstavljajo ali definirajo vedenje teh razredov. Metode in atribute razredov imenujemo člani razreda. Običajno se enkapsulacija doseže tako, da so atributi zasebni, medtem ko se ustvarijo javne metode, ki se lahko uporabljajo za dostop do teh atributov. Objekt je primerek razreda. Dedovanje omogoča uporabniku razširitev razredov (imenovanih podrazredi) iz drugih razredov (imenovanih super razredi). Polimorfizem omogoča programerju, da zamenja objekt razreda namesto objekta njegovega nadrazreda. Običajno samostalniki, ki jih najdemo v definiciji problema, neposredno postanejo razredi v programu. In podobno postanejo glagoli metode. Javno, zasebno in zaščiteno so tipični modifikatorji dostopa, ki se uporabljajo za razrede. Diagram razredov prikazuje razrede sistemov, odnose med razredi in njihove atribute.
Kaj so strukture?
Kot je omenjeno zgoraj, so strukture zelo podobne razredom s podobno uporabo, vendar imajo nekoliko omejene zmogljivosti kot razredi. Pravzaprav lahko razrede obravnavamo kot razširitev struktur. Na primer, strukture so enake kot razredi v C++, vendar imajo privzeto javne člane. Uporabnik lahko definira strukturo, ki predstavlja tip, ki je sestavljen. Podobno kot razredi strukture vsebujejo člane, ki lahko pripadajo številnim vrstam. Ključna beseda struct se uporablja za definiranje strukture v C in C++, medtem ko se ključna beseda Structure uporablja za isto v programskih jezikih. NET.
Kakšna je razlika med razredi in strukturami?
Čeprav so tako razredi kot strukture podobni konstrukti, ki jih najdemo v programskih jezikih, imajo subtilne razlike. Običajno je razred razširitev strukture, zato imajo strukture nekaj relativnih omejitev. Na primer, strukture se lahko štejejo za enake kot razredi v C++, vendar člani v razredih niso privzeto javni (za razliko od struktur). To pravzaprav pomeni, da lahko definirate razred in strukturo s popolnoma enakimi lastnostmi z uporabo ustreznih modifikatorjev dostopa v C++. Vendar v C strukture ne morejo vsebovati nobenih funkcij ali preobremenjenih operacij. Ključni besedi class in struct se uporabljata za definiranje razreda oziroma 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 objekte, razredi pa za večje objekte, ki se v pomnilniku hranijo dlje časa.