Skirtumas tarp klasių ir konstrukcijų

Klasės prieš konstrukcijas

Kai kurios pagrindinės Object Oriented (OO) programavimo kalbų sąvokos yra kapsuliacija, paveldimumas ir polimorfizmas. Klasė ir struktūra yra du iš OO konstrukcijų / įrankių, kurie padeda programuotojams pasiekti šias sąvokas daugumoje egzistuojančių OO programavimo kalbų („Java“ neteikia struktūrų). Klasės yra abstraktus realaus pasaulio objektų vaizdas. Konstrukcijos yra labai panašios į klases, kurių paskirtis yra panaši, tačiau, palyginti su klasėmis, jie turi keletą apribojimų. Tiek klasės, tiek struktūra yra naudojami norint sugrupuoti panašaus tipo duomenis.

Kas yra klasės?

Klasėse vaizduojamas abstraktus realaus pasaulio objektų vaizdavimas, o santykiuose - tai, kaip kiekviena klasė yra sujungta su kitomis. Ir klasės, ir santykiai turi savybes, vadinamas atributais. Klasių metodai parodo arba apibūdina šių klasių elgesį. Užsiėmimų metodai ir požymiai vadinami klasės nariais. Paprastai inkapsuliacija pasiekiama padarant atributus privačius, o sukuriant viešus metodus, kuriuos galima naudoti tiems atributams pasiekti. Objektas yra klasės pavyzdys. Paveldimumas leidžia vartotojui išplėsti klases (vadinamas antrinėmis klasėmis) iš kitų klasių (vadinamų superklasėmis). Polimorfizmas leidžia programuotojui pakeisti klasės objektą vietoje savo superklasės objekto. Paprastai problemos apibrėžime rasti daiktavardžiai programoje tiesiogiai tampa klasėmis. Panašiai veiksmažodžiai tampa metodais. Vieši, privatūs ir saugomi yra tipiniai prieigos modifikatoriai, naudojami klasėse. Klasių diagrama rodo sistemų klases, ryšius tarp klasių ir jų atributus.

Kas yra struktūros?

Kaip minėta aukščiau, struktūros yra labai panašios į klases, kurių paskirtis yra panaši, tačiau jų galimybės yra šiek tiek ribotos nei klasių. Tiesą sakant, klases galima laikyti pratęsimu struktūroms. Pvz., Struktūros yra tokios pačios kaip C ++ klasės, tačiau pagal numatytuosius nustatymus jos turi viešuosius narius. Vartotojas gali apibrėžti struktūrą, kad ji atspindėtų sudėtinį tipą. Kaip ir klasėse, struktūrose yra narių, kurie gali priklausyti daugeliui tipų. Raktinis žodis struct naudojamas apibrėžti struktūrą C ir C ++, o raktinis žodis Struktūra yra naudojamas toms pačioms .NET programavimo kalbomis..

Kuo skiriasi klasės ir konstrukcijos?

Nors tiek klasės, tiek struktūros yra panašios konstrukcijos, randamos programavimo kalbose, jos turi subtilių skirtumų. Paprastai klasė yra struktūros pratęsimas, todėl struktūros turi tam tikrus santykinius apribojimus. Pvz., Struktūros gali būti laikomos tomis pačiomis, kaip C ++ klasės, bet pagal numatytuosius nustatymus klasės nariai nėra atviri (skirtingai nei struktūrose). Tai iš tikrųjų reiškia, kad jūs galite apibrėžti klasę ir struktūrą su tomis pačiomis savybėmis, naudodamiesi tinkamais prieigos modifikatoriais C ++. Tačiau C struktūroje negali būti jokių funkcijų ar perkrautų operacijų. Raktiniai žodžiai class ir struct yra naudojami atitinkamai klasei ir struktūrai apibrėžti C ++. Kalbant apie .NET kalbas (C #, VB.NET ir kt.), Klasė yra nuorodos tipas, o struktūra yra vertės tipas. Paprastai struktūros naudojamos mažesniems objektams, tačiau klasės naudojamos didesniems objektams, kurie ilgesnį laiką saugomi atmintyje.