Klasių ir struktūrų skirtumai

Klasių ir struktūrų skirtumai
Klasių ir struktūrų skirtumai

Video: Klasių ir struktūrų skirtumai

Video: Klasių ir struktūrų skirtumai
Video: ASTROLOGINĖ GIMIMO LENTELĖ: kaip ją susidaryti ir ja naudotis? (Žinantiems tikslų gim. laiką ir ne) 2024, Liepa
Anonim

Klasės prieš struktūras

Kai kurios iš pagrindinių objektinių (OO) programavimo kalbų sąvokų yra inkapsuliavimas, paveldėjimas ir polimorfizmas. Klasė ir struktūra yra dvi OO konstrukcijos / įrankiai, padedantys programuotojams pasiekti šias sąvokas daugelyje išeinančių OO programavimo kalbų (Java nepateikia struktūrų). Klasės yra abstraktus realaus pasaulio objektų vaizdas. Struktūros yra labai panašios į panašaus naudojimo klases, tačiau turi keletą apribojimų, palyginti su klasėmis. Klasės ir struktūra naudojamos panašaus tipo duomenims grupuoti kartu.

Kas yra pamokos?

Klasės vaizduoja abstraktų realaus pasaulio objektų vaizdavimą, o santykiai parodo, kaip kiekviena klasė yra susijusi su kitomis. Ir klasės, ir santykiai turi savybių, vadinamų atributais. Klasių metodai atspindi arba apibrėžia šių klasių elgesį. Klasių metodai ir atributai vadinami klasės nariais. Paprastai inkapsuliavimas pasiekiamas padarant atributus privačiais, tuo pačiu sukuriant viešuosius metodus, kuriuos galima naudoti norint pasiekti šiuos atributus. Objektas yra klasės egzempliorius. Paveldėjimas leidžia vartotojui išplėsti klases (vadinamas subklasėmis) iš kitų klasių (vadinamų super klasėmis). Polimorfizmas leidžia programuotojui pakeisti klasės objektą vietoj jo super klasės objekto. Paprastai problemos apibrėžime rasti daiktavardžiai tiesiogiai tampa programos klasėmis. Ir panašiai veiksmažodžiai tampa metodais. Viešasis, privatus ir apsaugotas yra tipiški prieigos modifikatoriai, naudojami klasėms. Klasių diagrama rodo sistemų klases, klasių ryšius ir jų atributus.

Kas yra struktūros?

Kaip minėta, struktūros yra labai panašios į panašaus naudojimo klases, tačiau jų galimybės yra šiek tiek ribotos nei klasių. Tiesą sakant, klases galima laikyti struktūrų išplėtimu. Pavyzdžiui, struktūros yra tokios pačios kaip klasės C++, tačiau pagal numatytuosius nustatymus jos turi viešuosius narius. Vartotojas gali apibrėžti struktūrą, kuri atspindėtų sudėtinį tipą. Panašiai kaip klasėse, struktūrose yra narių, kurie gali priklausyti daugeliui tipų. Raktinis žodis struct naudojamas struktūrai apibrėžti C ir C++, o raktinis žodis Structure tam naudojamas. NET programavimo kalbose.

Kuo skiriasi klasės ir struktūros?

Nors tiek klasės, tiek struktūros yra panašios programavimo kalbose, jos turi subtilių skirtumų. Paprastai klasė yra struktūros išplėtimas, todėl struktūros turi tam tikrų santykinių apribojimų. Pavyzdžiui, struktūros gali būti laikomos tokiomis pat kaip ir C++ klasės, tačiau nariai pagal nutylėjimą klasėse nėra vieši (skirtingai nei struktūrose). Tai iš tikrųjų reiškia, kad galite apibrėžti klasę ir struktūrą, turinčią lygiai tas pačias charakteristikas, naudodami atitinkamus prieigos modifikatorius C++. Tačiau C, struktūrose negali būti jokių funkcijų ar perkrautų operacijų. Raktiniai žodžiai class ir struct naudojami atitinkamai klasei ir struktūrai apibrėžti C++ kalboje. Kalbant apie. NET kalbas (C, VB. NET ir kt.), klasė yra nuorodos tipas, o struktūra yra reikšmės tipas. Ir paprastai struktūros naudojamos mažesniems objektams, bet klasės naudojamos didesniems objektams, kurie saugomi atmintyje ilgesnį laiką.

Rekomenduojamas: