Sužinokite C #, skirtą „Android“ 2 daliai: klasės ir kilpos

Autorius: John Stephens
Kūrybos Data: 24 Sausio Mėn 2021
Atnaujinimo Data: 1 Liepos Mėn 2024
Anonim
Introduction to C Language - Part 2 | C Language Tutorial  |  by Mr. Srinivas
Video.: Introduction to C Language - Part 2 | C Language Tutorial | by Mr. Srinivas

Turinys


Vienoje iš šios „Android“ mokymo serijos apie C # mokymąsi dalyje apžvelgėme absoliučius C # programavimo pagrindus. Mes apėmė metodus (kodo grupes, atliekančius specifines užduotis), keletą pagrindinių sintaksių (pvz., Poreikį naudoti po dvitaškius), kintamuosius (konteinerius, kuriuose saugomi duomenys) ir srauto valdymo „jei teiginius“ (filialo kodą, kuris priklauso nuo verčių kintamųjų). Mes taip pat matėme, kaip perduoti kintamuosius, pavyzdžiui, stygas, kaip argumentus tarp metodų.

Turėtumėte grįžti atgal ir pažvelgti į tai, jei dar neskaitėte.

Šiuo metu turėtumėte sugebėti sukurti keletą pagrindinių konsolės programų, pvz., Viktorinų, duomenis kaupiančių programų ar skaičiuoklių.

Antroje dalyje ketiname pasidaryti šiek tiek ambicingesni, apžvelgdami dar kelis pagrindus, pavyzdžiui, kilpas, ir išnagrinėsime, kaip kurti ir bendrauti su klasėmis. Tai reiškia, kad galėsime pradėti stabdyti „Android“ plėtrą ir sužinoti, kaip tą spragą užpildyti. Tęskite skaitymą, jei norite iš tikrųjų išmokti C #!


Klasių ir objektinio programavimo supratimas

Trumpai pirmoje dalyje paaiškinome objektinio programavimo, kuris sukasi aplink kalbas, naudojant „klases“ apibūdinant „objektus“, pagrindus. Objektas yra duomenų dalis, galinti atvaizduoti daug dalykų. Tai gali būti pažodinis objektas žaidimų pasaulyje, pavyzdžiui, pavasaris, arba tai gali būti kažkas abstraktesnio, pavyzdžiui, vadybininkas, kuris tvarko žaidėjo rezultatą.

Viena klasė gali sukurti kelis objektus. Taigi galite parašyti vieną „priešo“ klasę, bet sugebėti sugeneruoti visą lygį, kuriame pilna blogų vaikinų. Tai yra vienas iš didelių objektinio programavimo naudojimo pranašumų. Priešingu atveju vienintelis būdas susitvarkyti su daugybės priešų elgesiu būtų naudoti daugybę individualių metodų, kiekviename iš jų pateikiant instrukcijas, kaip blogiukas turėtų elgtis skirtingomis aplinkybėmis.


Jei tai vis dar yra šiek tiek sudėtinga susukti galvą, viskas, ką tikrai reikia žinoti, yra tai, kad objektai turi savybių ir elgseną. Tai yra kaip ir tikri objektai. Pavyzdžiui, triušis pasižymi tokiomis savybėmis kaip dydis, spalva ir vardas; ir jis turi elgesį, pavyzdžiui, šokinėja, sėdi ir valgo. Iš esmės savybės yra kintamieji, o elgesys - metodai.

Programa, kurią sukūrėme paskutinėje pamokoje, yra ir klasės pavyzdys. „Objektas“, kurį čia apibūdiname, yra tam tikra slaptažodžių valdymo sistema. Nuosavybė, kurią ji turi, yra eilutė „UserName“, o elgesys, kurį ji turi, yra „NewMethod“ (tikrinamas vartotojo vardas ir pasveikinamas).

Jei taipvis tiek šiek tiek painu, vienintelis būdas susivokti yra sukurti sau naują ar dvi klases!

Sukuriama nauja klasė

Jei ketinate mokytis C #, turite žinoti, kaip sudaryti naujas klases. Laimei, tai labai lengva. Tiesiog spustelėkite meniu punktą Projektas ir pasirinkite „+ Pridėti klasę“.

Pasirinkite „C #“ ir vadinkite „triušiu“. Mes naudosime šią klasę konceptualiems triušiams kurti. Akimirksniu pamatysite, ką turiu omenyje.

Jei patikrinsite „Solution Explorer“ dešinėje, pamatysite, kad tiesiai po „Program.cs“ buvo sukurtas naujas failas pavadinimu „Rabbit.cs“. Gerai padaryta - tai yra vienas svarbiausių dalykų, kuriuos reikia žinoti, jei norite išmokti C #, skirtą „Android“!

Naujasis „Rabbit.cs“ failas turi tą patį „boilerplate“ kodą kaip ir anksčiau. Jis vis dar priklauso tai pačiai vardų sričiai ir turi klasę tuo pačiu pavadinimu kaip failas.

vardų sritis ConsoleApp2 {klasės triušis {}}

Dabar mes suteiksime triušiui savybių, kurias mes vadinsime „konstruktoriumi“.

Konstruktorius yra klasės metodas, kuris inicijuoja objektą, leidžiant mums apibrėžti jo savybes, kai pirmą kartą jį sukuriame. Tokiu atveju štai ką mes sakysime:

vardų sritis ConsoleApp2 {class Rabbit {vieša eilutė RabbitName; vieša eilutė „RabbitColor“; public int RabbitAge; public int RabbitWeight; viešasis triušis (eilutės pavadinimas, eilutės spalva, amžius, svoris) {RabbitName = name; RabbitColor = spalva; RabbitAge = amžius; RabbitWeight = svoris; }}}

Tai leidžia mums sukurti naują triušį iš kitos klasės ir apibrėžti jo savybes kaip mes:

Rabbit Rabbit1 = naujas triušis („Jeff“, „rudas“, 1, 1);

Dabar aš suprantu, kad svoris tikriausiai turėjo būti plūdė arba dviguba, kad būtų galima po kablelio, bet jūs sugalvojate idėją. Mes suapvalinsime savo triušį iki artimiausio sveikojo skaičiaus.

Pamatysite, kai išrašysite savo triušį, būsite paraginti pateikti teisingus argumentus. Tokiu būdu jūsų klasė beveik tapo kodo dalimi.

Patikėkite ar ne, šis kodas sukūrė triušį! Jūs negalite pamatyti savo triušio, nes mes neturime jokios grafikos, bet jis ten yra.

Norėdami tai įrodyti, dabar galite naudoti šią eilutę:

Console.WriteLine (Rabbit1.RabbitName);

Tada jums pasakys ką tik sukurto triušio vardas!

Mes taip pat galime padidinti savo triušio svorį:

Triušis1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "sveria" + Rabbit1.RabbitWeight + "kg");

Čia atkreipkite dėmesį, kad pridėję „++“ ant kažko pabaigos, jo vertė palaipsniui padidės viena (taip pat galite parašyti „RabbitWeight = RabbitWeight + 1“).

Kadangi mūsų klasė gali pagaminti tiek triušių, kiek mums patinka, galime sukurti daugybę skirtingų triušių, kurių kiekviena turi savo savybes.

Pridedame elgesį

Tada mes taip pat galime pasirinkti, kaip elgtis su triušiu. Tokiu atveju leiskime jiems valgyti.

Norėdami tai padaryti, mes sukurtume viešą metodą, vadinamą „valgyti“, ir tai sukeltų valgymo garsą, kartu didindami triušio svorį:

public void Eat () {Console.WriteLine (RabbitName + ": Nibble nibble!"); RabbitWeight ++; }

Atminkite, kad „viešas“ reiškia prieinamą iš klasės, o „negaliojantis“ reiškia, kad metodas negrąžina jokių duomenų.

Tada iš „Program.cs“ programos galėsime vadinti šiuo metodu ir tai privers mūsų pasirinktą triušį valgyti ir priaugti:

Console.WriteLine (Rabbit1.RabbitName + "sveria" + Rabbit1.RabbitWeight + "kg"); Triušis1.Eat (); Triušis1.Eat (); Triušis1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "sveria" + Rabbit1.RabbitWeight + "kg");

Dėl to Jeffas valgys tris kartus, tada mes išgirsime ir pamatysime, kad jis padidėjo! Jei scenoje turėtume kitą triušį, jie taip pat galėtų valgyti!

Console.WriteLine (Rabbit1.RabbitName + "sveria" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "sveria" + Rabbit2.RabbitWeight + "kg"); Triušis1.Eat (); Triušis1.Eat (); Triušis2.Eat (); Triušis2.Eat (); Triušis1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "sveria" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "sveria" + Rabbit2.RabbitWeight + "kg");

Tuo kaip triušiai

Tai nėra ypač elegantiškas būdas tvarkyti daugybę objektų, nes turime rankiniu būdu parašyti kiekvieno triušio komandas ir negalime dinamiškai padidinti triušių skaičiaus tiek, kiek norime. Mes nenorime tik išmokti C # - norime išmokti rašyti švarų C # kodą!

Štai kodėl mes galime naudoti sąrašą. Sąrašas yra kolekcija; pats kintamasis, kuriame iš esmės yra nuorodos į kitus kintamuosius. Tokiu atveju galime sudaryti triušių sąrašą, o gera žinia ta, kad tai labai lengva suprasti:

Sąrašas RabbitList = naujas sąrašas(); „RabbitList.Add“ (naujas triušis („Jeff“, „rudas“, 1, 1)); „RabbitList.Add“ (naujas triušis („Sam“, „baltas“, 1, 2));

Taip sukuriamas naujas triušis, kaip ir anksčiau, tačiau kartu triušis įtraukiamas į sąrašą. Lygiai taip pat galėtume pasakyti taip:

Rabbit Rabbit3 = naujas triušis („Jonny“, „oranžinis“, 1, 1); „RabbitList.Add“ („Rabbit3“);

Bet kokiu atveju objektas buvo sukurtas ir įtrauktas į sąrašą.

Taip pat patogiai ir elegantiškai galime grąžinti informaciją iš savo triušių sąrašo:

foreach (var. Rabbit in RabbitList) {Console.WriteLine (Rabbit.RabbitName + "sveria" + Rabbit.RabbitWeight + "kg"); }

Kaip jums galbūt pavyko išsiaiškinti, „pratarmė“ reiškia, kad jūs kartojate veiksmą vieną kartą kiekvienam sąrašo elementui. Iš sąrašo taip pat galite gauti tokią informaciją:

RabbitList.Eat ();

„1“ yra rodyklė, tai reiškia, kad jūs kalbate apie informaciją, saugomą pirmoje vietoje. Kaip atsitinka, tai iš tikrųjų yra tas antra triušis, kurį pridėjote, nes programavimo sąrašai visada prasideda nuo 0.

Fibonačiukai

Jei dar nespėjote atspėti, dabar šią informaciją naudosime kurdami „Fibonacci“ seką. Galų gale, jei jūs mokotės C #, skirto „Android“, turėtumėte sugebėti iš tikrųjų padaryti ką nors įdomaus naudodamiesi šia teorija!

Fibonačio seka triušiai uždaromi kambaryje ir paliekami veisti. Jie gali daugintis po vieno mėnesio, tada yra lytiškai subrendę (negaliu patvirtinti, ar tai teisinga triušių biologija). Jei kiekviena triušių pora nuo to laiko gali duoti vieną kartą per mėnesį, augindama du palikuonis, tai yra tokia:

1,1,2,3,5,8,13,21,34

Magiška, kad kiekvienas seka yra ankstesnių dviejų skaičių, sudėtų kartu, reikšmė. Anot mokslo, tai yra savotiška problema.

Šaunus dalykas, mes galime tai atkartoti.

Pirmiausia turime pristatyti naują sąvoką: kilpa. Tai paprasčiausiai pakartoja tą patį kodą vėl ir vėl, kol bus įvykdyta tam tikra sąlyga. „Už“ kilpa leidžia mums tai padaryti sukuriant kintamąjį, nustatant sąlygas, kurias norime atitikti, ir tada veikiant pagal ją - visi apibrėžti skliausteliuose:

už (vid. mėnesiai = 0; mėnesiai <100; mėnesiai ++) {// Daryk ką nors}

Taigi mes sukuriame sveiką skaičių, vadinamą mėnesiais, ir skaičiuojame, kol jis bus lygus 100. Tada padidinsime mėnesių skaičių vienu.

Norite sužinoti, kaip tai gali tapti „Fibonačio“ seka? Štai:

vardų sritis ConsoleApp2 {klasės programa {static void Main (string args) {sąrašas RabbitList = naujas sąrašas(); „RabbitList.Add“ (naujas triušis („Jeff“, „rudas“, 0, 1)); „RabbitList.Add“ (naujas triušis („Sam“, „baltas“, 0, 1)); už (vidiniai mėnesiai = 0; mėnesiai <10; mėnesiai ++) {int firstRabbit = 0; int timesToReproduce = 0; foreach (var Rabbit in RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } kita {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } for (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (naujas triušis („NewBabyRabbit“, „rudas“, 0, 1)); „RabbitList.Add“ (naujas triušis („NewBabyRabbit“, „rudas“, 0, 1)); Console.Write („r“); Console.Write („r“); } Console.WriteLine ("--- Yra" + RabbitList.Count / 2 + "triušių poros!"); Console.WriteLine (""); } Console.WriteLine („Viskas padaryta!“); Konsolė.ReadKey (); }}}

Gerai, kad buvo sunkiau, nei aš maniau!

Aš neketinu to išnagrinėti, tačiau naudodamiesi tuo, ko jau išmokote, turėtumėte sugebėti tai pakeisti.

Yra tikrai daugiau elegantiškų būdų tai padaryti - nesu matematikas. Tačiau aš manau, kad tai gana įdomus pratimas, ir, kai tik galėsite tai padaryti, esate pasiruošęs dideliam laikui.

Aš, beje, norėčiau pamatyti kitus metodus!

Kur mes einame iš čia? Kaip išmokti C #, skirtą „Android“

Turėdamas visas šias žinias po diržu, esi pasirengęs pradėti nuo didesnių dalykų. Visų pirma, jūs pasiruošę įsijausti į „Android“ programavimą naudodami C # „Xamarin“ ar „Unity“.

Tai skiriasi tuo, kad naudosite „Google“, „Microsoft“ ir „Unity“ teikiamas klases. Kai rašote kažką panašaus į „RigidBody2D.velocity“, tai jūs darote, kad pasiekiate nuosavybę iš klasės paskambino „RigidBody2D“. Tai veikia lygiai taip pat, vienintelis skirtumas yra tas, kad nematote „RigidBody2D“, nes patys nesukūrėte.

Turėdami šį C # po diržu, turėtumėte būti pasirengę pasirinkti bet kurią iš šių parinkčių ir gerai suprasti, kas vyksta:

  • Kaip sukurti „Android“ programą su „Xamarin“
  • Sukurkite savo pirmąjį „Android“ žaidimą per 7 minutes su „Unity“

Būsimoje pamokoje mes taip pat išnagrinėsime, kaip galite pasukti posūkį ir panaudoti tai kurdami „Windows“ programas!

1. Tipa ukurkite atkūrimo tašką „Cortana“ paieško lauke užduočių juotoje. 2. Pairinkite ukurkite atkūrimo tašką (Valdymo kyda) rezultata....

talini kompiuteri (kairėje) ir nešiojama kompiuteri (dešinėje)UB darbalaukio klaviatūro papratai uteikia atkirą paudinimo ekrano klavišą šalia „Pagrindini“ ir „Ištrinti“ klavišų. Atvirkščiai, nešiojam...

Mes Rekomenduojame