Klasės ir struktūros
Kai kurios pagrindinės į objektą orientuoto (OO) programavimo kalbų sąvokos yra kapsuliavimas, paveldėjimas ir polimorfizmas. „Class and Structure“yra du OO konstruktai / įrankiai, kurie padeda programuotojams pasiekti šias koncepcijas daugumoje išeinančių OO programavimo kalbų („Java“nepateikia struktūrų). Klasės yra abstraktus realaus pasaulio objektų vaizdavimas. Struktūros yra labai panašios į panašaus naudojimo klases, tačiau, palyginti su klasėmis, turi nedaug apribojimų. Grupuojant panašaus tipo duomenis, naudojamos tiek klasės, tiek struktūra.
Kas yra klasės?
Klasėse vaizduojamas abstraktus realaus pasaulio objektų vaizdavimas, o santykiuose - tai, kaip kiekviena klasė yra susijusi su kitais. Tiek klasės, tiek santykiai turi savybių, vadinamų atributais. Klasių metodai atspindi arba apibrėžia šių klasių elgesį. Užsiėmimų metodai ir atributai vadinami klasės nariais. Paprastai kapsuliavimas pasiekiamas paverčiant atributus privačiais, o 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ą vietoje 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. Užsiėmimų modifikatoriai, naudojami klasėse, yra vieši, privatūs ir saugomi. Klasių schema rodo sistemų klases, ryšius tarp klasių ir jų atributus.
Kas yra struktūros?
Kaip minėta pirmiau, struktūros yra labai panašios į panašaus naudojimo klases, tačiau yra šiek tiek ribotos galimybės nei klasės. Iš tikrųjų klasės gali būti laikomos struktūrų pratęsimu. Pavyzdžiui, struktūros yra tokios pačios kaip klasės C ++, tačiau pagal numatytuosius nustatymus jose yra viešų narių. Vartotojas gali apibrėžti struktūrą, kuri atspindi sudėtinį tipą. Panašiai kaip 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 Structure tam pačiam naudojamas. NET programavimo kalbose.
Kuo skiriasi klasės ir struktūros?
Nors ir klasės, ir struktūros yra panašūs konstruktai, rasti programavimo kalbose, jie 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 tokiomis pačiomis kaip klasės C ++, 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čias visiškai tas pačias charakteristikas, naudodami atitinkamus prieigos modifikatorius C ++. Tačiau C atveju struktūrose negali būti jokių funkcijų ar perkrautų operacijų. Raktiniai žodžiai „class“ir „struct“naudojami apibrėžiant klasę ir struktūrą atitinkamai C ++. Kalbant apie. NET kalbas (C #, VB. NET ir kt.), Klasė yra nuorodos tipas, o struktūra - vertės tipas. Ir paprastai,struktūros naudojamos mažesniems objektams, tačiau klasės naudojamos didesniems objektams, kurie ilgesnį laiką saugomi atmintyje.