C# objektorientētā programmēšana Jāraksta, protams, latviski, bet būtu labi izmantojot OOP terminus gan latviešu, gan angļu valodā vismaz vienreiz kādā no atbildēm katram terminam (piemēram, atbilde iekļauj "Konstruktors (ang.v. - constructor) ir ..."). Sign in to Google to save your progress. Learn more * Indicates required question Visu informāciju par OOP var atrast W3Schools sadaļā "C# Classes" (https://www.w3schools.com/cs/cs_oop.php). Visas atbiles uz jautājumiem var atrast šeit. Vārds, uzvārds * Arturs Peskovs 1. OOP (Objekt-Orientētā Programmēšana) Kas ir objektorientētā programmēšana (OOP) un kāda ir tās galvenā priekšrocība salīdzinājumā ar procesuālo programmēšanu? Objektorientētā satur klases ar datiem un metodem, ka asortiments, piemeram: klase augli un ieksa klase kadi tiesi augli, abols, ar vinu mazak koda jaraksta un nav jaatkarto dalas vairakas reizes Kādi ir četri galvenie OOP pīlāri (principi)? "Neatkārtojiet sevi" (DRY) ir par koda atkārtošanās samazināšanu, ātrāks un vienkāršāk izpildāms, nodrošina skaidru programmu struktūru, atvieglo koda uzturēšanu, modificēšanu un atkļūdošanu 2. Klases un objekti Kas ir klase un kas ir objekts? (Paskaidro saistību starp tiem, izmantojot reālās pasaules piemēru). Klase satur objektus, piemeram: darzenu asortimetns veikala, zem klases "darzeni" ir objekti "gurkis, tomats, kartupelis" Kādu atslēgvārdu izmanto C#, lai no klases izveidotu jaunu objektu? izmanto "new", piemeram: Car myObj = new Car(); (klases nosk.) (mainiga nosk) = new (klases nosk.()) 3. Klases saturs Kas ir klases biedri (members)? Uzskaiti vismaz divus veidus. klases biedri elementi kas atrodas ieksa klase, bet arpus jebkadas metodes, par tiem parasti sauc "lauki" un "metodes" Kāda ir atšķirība starp lauku (field) un metodi? Mana uzskata: lauks ir vienkarsi mainigais, kas satur vai nesatur datus, a metode veic kaut kadas darbibas ar tiem mainigajiem "lauki" 4. Konstruktori Kas ir konstruktors un kad tieši tas tiek izpildīts? Konstruktors ir īpaša metode , ko izmanto objektu inicializēšanai. Ta tiek izsaukts, kad tiek izveidots klases objekts, piemeram: vispirms tuks mainigais "lauks", pec tam konstruktors kas pieveinos vertibu mainigajam, kad tiks izveidots klases objekts ar Car Ford = new Car(); ,konstruktoram jabut ar tadu pasu nosaukumu ka klase Kāpēc konstruktora nosaukumam ir jāsakrīt ar klases nosaukumu? Lai tas izsauktos kad objekts tiek izveidots Kā konstruktors palīdz izvairīties no tukšiem vai nepareiziem datiem objekta izveides brīdī? ?Vinam nav nevar būt atgriešanas tips (piemēram void, vai int)? 5. Piekļuves modifikatori Kāda ir atšķirība starp public un private piekļuves līmeņiem? Public: lauki, metodes - ir pieiejamas visam klasem, ne tikai taja pasa kura ir izveidots Private: ir pieiejams tikai taja pasa klase kur tas ir izveidots Kāpēc programmēšanā tiek uzskatīts par labu praksi klases laukus (fields) definēt kā private? Lai panāktu " inkapsulāciju " — procesu, kas nodrošina, ka "sensitīvi" dati ir paslēpti no lietotājiem, to var panākt, deklarējot laukus kā private. (drošības līmenis) 6. "Īpašības" (Get un Set) Kas ir īpašība (Property) un kā tā atšķiras no parasta mainīgā? Īpašība(Property) ir darbiba kuru izmanto lai piekļūtu private lauka vērtībai un atjauninātu to Ta atskiras no parasta mainiga, ka vinai ir japiekļūt pie jau izveidotas private lauka Kā get un set bloki palīdz kontrolēt piekļuvi datiem (piemēram, datu validācija)? Izmantojot mainīgā un metodes kombinācija, kopa ar divam metodem: get un set var pieklut pie private datiem lai tiem piešķirtu vērtību Kas ir "Automatic Properties" un kad tās ir ērti lietot? 7. Mantošana Ko nozīmē mantošana programmēšanā? Definē terminus: "Base Class" un "Derived Class". Kādu simbolu C# izmanto, lai norādītu, ka klase manto no citas klases? Kāpēc mantošana palīdz rakstīt īsāku un tīrāku kodu? 8. Polimorfisms Ko nozīmē termins "polimorfisms"? Kāpēc ir nepieciešami atslēgvārdi virtual bāzes klasē un override mantotajā klasē? Kā polimorfisms ļauj apstrādāt dažādu klašu objektus kā vienu tipu? 9. Abstrakcija Kas ir abstrakta klase un vai no tās var izveidot objektu? Kāpēc mēs veidojam abstraktas metodes, kurām nav koda "ķermeņa" (implementācijas)? Kāds ir galvenais abstrakcijas mērķis (ko mēs mēģinām panākt attiecībā pret lietotāju)? 10. "Interfeisi" Kas ir interfeiss un ar ko tas atšķiras no parastas klases? Vai viena klase C# valodā var implementēt vairākus interfeisus vienlaicīgi? (Salīdzini ar mantošanu). Kāpēc interfeisus bieži sauc par "līgumu" starp programmētāju un klasi?