Atšķirība starp klasēm un struktūrām

Atšķirība starp klasēm un struktūrām
Atšķirība starp klasēm un struktūrām

Video: Atšķirība starp klasēm un struktūrām

Video: Atšķirība starp klasēm un struktūrām
Video: Diagnostikas metode, kas vēzi ļauj atrast ātri, precīzi un agrīni 2024, Jūlijs
Anonim

Nodarbības pret struktūrām

Daži no galvenajiem objektorientēto (OO) programmēšanas valodu jēdzieniem ir iekapsulēšana, mantošana un polimorfisms. Klase un struktūra ir divas no OO konstrukcijām/rīkiem, kas palīdz programmētājiem sasniegt šīs koncepcijas lielākajā daļā OO programmēšanas valodu (Java nesniedz 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 salīdzinājumā ar klasēm tām ir maz ierobežojumu. Gan klases, gan struktūra tiek izmantotas līdzīga veida datu grupēšanai kopā.

Kas ir nodarbības?

Klases attēlo reālās pasaules objektu abstraktu attēlojumu, savukārt attiecības attēlo to, kā katra klase ir saistīta ar citām. Gan klasēm, gan attiecībām ir īpašības, ko sauc par atribūtiem. Klasēs izmantotās metodes atspoguļo vai definē šo klašu uzvedību. Klašu metodes un atribūtus sauc par klases dalībniekiem. Parasti iekapsulēšanu panāk, padarot atribūtus privātus, vienlaikus izveidojot publiskas metodes, kuras var izmantot, lai piekļūtu šiem atribūtiem. Objekts ir klases eksemplārs. Mantojums ļauj lietotājam paplašināt klases (sauktas par apakšklasēm) no citām klasēm (sauktas par superklasēm). Polimorfisms ļauj programmētājam aizstāt klases objektu tās superklases objekta vietā. Parasti problēmas definīcijā atrodamie lietvārdi tieši kļūst par klasēm programmā. Un līdzīgi darbības vārdi kļūst par metodēm. Publiskie, privātie un aizsargātie ir tipiski klasēm izmantotie piekļuves modifikatori. Klašu diagramma parāda sistēmu klases, attiecības starp klasēm un to atribūti.

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ēm. Faktiski klases var uzskatīt par struktūru paplašinājumu. Piemēram, struktūras ir tādas pašas kā C++ klases, taču tām pēc noklusējuma ir publiski dalībnieki. Lietotājs var definēt struktūru, kas attēlo saliktu tipu. Līdzīgi kā klasēs, struktūrās ir locekļi, kas var piederēt daudziem veidiem. Atslēgvārdu struct izmanto, lai definētu struktūru C un C++, savukārt atslēgvārdu Structure izmanto tam pašam. NET programmēšanas valodās.

Kāda ir atšķirība starp klasēm un struktūrām?

Lai gan klases un struktūras ir līdzīgas konstrukcijas, kas atrodamas programmēšanas valodās, tām ir nelielas 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ā klasēm C++, taču dalībnieki klasēs pēc noklusējuma nav publiski (atšķirībā no struktūrām). Tas faktiski nozīmē, ka varat definēt klasi un struktūru ar tieši tādām pašām īpašībām, izmantojot atbilstošos piekļuves modifikatorus C++. Tomēr C struktūrās nedrīkst būt nekādas funkcijas vai pārslogotas darbības. Atslēgvārdi class un struct tiek izmantoti, lai attiecīgi definētu klasi un struktūru C++ valodā. Runājot par. NET valodām (C, VB. NET utt.), klase ir atsauces veids, bet struktūra ir vērtību tips. Un parasti struktūras tiek izmantotas mazākiem objektiem, bet klases tiek izmantotas lielākiem objektiem, kas tiek glabāti atmiņā ilgāku laiku.

Ieteicams: