Klases vs struktūras
Daži no objektorientēto (OO) programmēšanas valodu galvenajiem jēdzieniem ir iekapsulēšana, mantošana un polimorfisms. Klase un struktūra ir divi no OO konstrukcijām / rīkiem, kas palīdz programmētājiem sasniegt šos jēdzienus lielākajā daļā izejošo OO programmēšanas valodu (Java nenodrošina struktūras). Klases ir abstrakts reālās pasaules objektu attēlojums. Struktūras ir ļoti līdzīgas klasēm ar līdzīgu lietojumu, taču tām ir maz ierobežojumu, salīdzinot ar klasēm. Gan klases, gan struktūra tiek izmantotas, lai kopā grupētu līdzīga veida datus.
Kas ir klases?
Nodarbībās attēlots reālās pasaules objektu abstrakts attēlojums, savukārt attiecībās - kā katra klase ir saistīta ar citiem. Gan klasēm, gan attiecībām ir īpašības, kuras sauc par atribūtiem. Nodarbības klasēs atspoguļo vai nosaka šo klašu uzvedību. Nodarbību metodes un atribūtus sauc par klases dalībniekiem. Parasti iekapsulēšana tiek panākta, padarot atribūtus privātus, vienlaikus izveidojot publiskas metodes, kuras var izmantot, lai piekļūtu šiem atribūtiem. Objekts ir klases eksemplārs. Mantošana ļauj lietotājam paplašināt klases (sauktas apakšklases) no citām klasēm (sauktas par superklasēm). Polimorfisms ļauj programmētājam aizstāt klases objektu tā superklases objekta vietā. Parasti problēmas definīcijā sastopamie lietvārdi programmā tieši kļūst par klasēm. Un līdzīgidarbības vārdi kļūst par metodēm. Klases piekļuves modifikatori ir publiski, privāti un aizsargāti. Klašu diagramma parāda sistēmu klases, attiecības starp klasēm un to atribūtus.
Kas ir struktūras?
Kā minēts iepriekš, struktūras ir ļoti līdzīgas klasēm ar līdzīgu lietojumu, taču to iespējas ir nedaudz ierobežotas nekā klasēs. Faktiski klases var uzskatīt par struktūru paplašinājumu. Piemēram, struktūras ir tādas pašas kā klases C ++, taču tām pēc noklusējuma ir publiski dalībnieki. Lietotājs var definēt struktūru, kas pārstāv saliktu tipu. Līdzīgi kā klasēs, arī struktūrās ir dalībnieki, kas var piederēt daudziem tipiem. Atslēgvārdu struktūru izmanto, lai definētu struktūru C un C ++, savukārt atslēgvārdu Struktūra tam pašam izmanto. NET programmēšanas valodās.
Kāda ir atšķirība starp klasēm un struktūrām?
Lai gan gan klases, gan struktūras ir līdzīgas konstrukcijas, kas atrodamas programmēšanas valodās, tām ir smalkas atšķirības. Parasti klase ir struktūras paplašinājums, un tāpēc struktūrām ir daži relatīvi ierobežojumi. Piemēram, struktūras var uzskatīt par tādām pašām kā klases C ++, taču dalībnieki pēc noklusējuma klasēs nav publiski (atšķirībā no struktūrām). Tas faktiski nozīmē, ka jūs varat definēt klasi un struktūru ar tieši vienādiem raksturlielumiem, izmantojot atbilstošos piekļuves modifikatorus C ++. Tomēr C struktūras nevar saturēt nekādas funkcijas vai pārslogotas darbības. Atslēgvārdi klase un struktūra tiek izmantoti, lai definētu klasi un struktūru attiecīgi C ++. Runājot par. NET valodām (C #, VB. NET utt.), Klase ir atsauces tips, bet struktūra ir vērtības tips. Un parasti,struktūras tiek izmantotas mazākiem objektiem, bet klases tiek izmantotas lielākiem objektiem, kas tiek saglabāti atmiņā ilgāk.