Aflați C # pentru Android partea 2: clase și bucle

Autor: John Stephens
Data Creației: 24 Ianuarie 2021
Data Actualizării: 1 Iulie 2024
Anonim
Носки из квадратов без шва. Носки в технике Пэчворк. На любой размер. Подробный мастер класс.
Video: Носки из квадратов без шва. Носки в технике Пэчворк. На любой размер. Подробный мастер класс.

Conţinut


În prima parte a acestei serii de tutorial de Android despre învățarea C #, am analizat elementele de bază absolute ale programării C #. Am acoperit metode (grupuri de cod care îndeplinesc sarcini specifice), unele sintaxe de bază (cum ar fi necesitatea semicolonelor), variabile (containere care stochează date) și „if statement” pentru controlul fluxului (cod de ramificare care depinde de valori a variabilelor). Am văzut de asemenea cum să trecem variabile precum șiruri ca argumente între metode.

Ar trebui să te întorci și să arunci o privire dacă nu ai citit-o deja.

În acest moment, ar trebui să puteți crea unele aplicații de bază ale consolei, cum ar fi teste, aplicații care stochează date sau calculatoare.

În a doua parte, vom ajunge să fim puțin mai ambițioși, acoperind câteva elemente de bază - precum buclele - și vom explora cum să creăm și să interacționăm cu clasele. Aceasta înseamnă că vom putea începe să luăm înțepături la dezvoltarea Android și să vedem cum să eliminăm acest decalaj. Continuați să citiți dacă doriți să învățați cu adevărat C #!


Înțelegerea claselor și a programării orientate pe obiecte

Pe scurt în prima parte, am explicat elementele de bază ale programării orientate pe obiecte, care se învârte în jurul limbilor folosind „clase” pentru a descrie „obiecte”. Un obiect este o informație, care poate reprezenta multe lucruri. Ar putea fi un obiect literal într-o lume a jocului ca un izvor sau ar putea fi ceva mai abstract, precum un manager care gestionează scorul jucătorului.

O singură clasă poate crea mai multe obiecte. Așadar, s-ar putea să scrieți o clasă „inamică”, dar să puteți genera un nivel întreg plin de băieți răi. Acesta este unul dintre marile avantaje ale utilizării programării orientate pe obiecte. În caz contrar, singurul mod de a gestiona comportamentul unei multitudini de dușmani ar fi să folosească o mulțime de metode individuale, fiecare conținând instrucțiuni pentru cum ar trebui să se comporte omul rău în circumstanțe diferite.


Dacă acest lucru este încă un pic dificil să-ți dai capul, tot ce trebuie să știi este că obiectele au proprietăți și comportamente. Acesta este exact ca obiectele reale. De exemplu, un iepure are proprietăți precum dimensiunea, culoarea și numele; și are comportamente, cum ar fi sărituri, șezând și mâncat. În esență, proprietățile sunt variabile, iar comportamentele sunt metode.

Programul pe care l-am construit în ultima lecție este și un exemplu de clasă. „Obiectul” pe care îl descriem aici este un fel de sistem de control al parolelor. Proprietatea pe care o are este șirul UserName, iar comportamentul pe care îl are este NewMethod (verificând numele utilizatorului și salutându-le).

Dacă esteîncă un pic confuz, singurul mod de a ne duce capul este să creăm o nouă clasă sau două noi înșine!

Crearea unei clase noi

Dacă veți învăța C #, trebuie să știți cum să faceți noi clase. Din fericire, acest lucru este foarte ușor. Doar faceți clic pe elementul din meniul Proiect și apoi selectați „+ Adăugare clasă”.

Alegeți „C #” și numiți-l „Iepure.” Vom folosi această clasă pentru a crea iepuri conceptuali. Veți vedea ce vreau să spun într-o clipă.

Dacă verificați în partea dreaptă Explorer, veți vedea că a fost creat un nou fișier numit Rabbit.cs chiar sub Program.cs. Bine făcut - acesta este unul dintre cele mai importante lucruri de știut dacă doriți să învățați C # pentru Android!

Noul fișier Rabbit.cs are o parte din același cod „boilerplate” ca înainte. Încă aparține aceluiași spațiu de nume și are o clasă cu același nume ca fișierul.

namespace ConsoleApp2 {class Rabbit {}}

Acum vom oferi iepurelui nostru câteva proprietăți cu ceea ce numim „constructor”.

Un constructor este o metodă dintr-o clasă care inițializează obiectul, permițându-ne să-i definim proprietățile atunci când îl creăm. În acest caz, iată ce vom spune:

namespace ConsoleApp2 {class Rabbit {public string RabbitName; șir public RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (String name, String color, vârsta int, greutate int) {RabbitName = nume; RabbitColor = culoare; RabbitAge = vârstă; RabbitWeight = greutate; }}}

Acest lucru ne permite să creăm un iepure nou dintr-o altă clasă și să-i definim proprietățile așa cum facem:

Iepure Iepure1 = iepure nou („Jeff”, „maro”, 1, 1);

Acum îmi dau seama că, în retrospectivă, greutatea ar fi trebuit probabil să fie un float sau o dublă pentru a permite zecimale, dar ai ideea. Vom roti iepurele până la cel mai apropiat număr întreg.

Veți vedea când vă scrieți iepurele, vi se va solicita să treceți argumentele corecte. În acest fel, clasa dvs. a devenit o parte a codului aproape.

Credeți sau nu, acest cod a creat un iepure! Nu vă puteți vedea iepurele pentru că nu avem nicio grafică, dar există.

Pentru a dovedi acest lucru, puteți utiliza acum această linie:

Console.WriteLine (Rabbit1.RabbitName);

Acest lucru vă va spune apoi numele iepurelui pe care tocmai l-ați creat!

De asemenea, putem crește greutatea Iepurelui nostru, astfel:

Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "cântărește" + Rabbit1.RabbitWeight + "kg");

Rețineți că adăugarea „++” la sfârșitul ceva va crește incremental valoarea acestuia cu unu (Puteți scrie, de asemenea, „RabbitWeight = RabbitWeight + 1”).

Deoarece clasa noastră poate face cât mai mulți iepuri, ne putem crea o mulțime de iepuri diferiți, fiecare având propriile lor proprietăți.

Adăugarea comportamentelor

Apoi am putea alege, de asemenea, să oferim iepurelui nostru un fel de comportament. În acest caz, să le lăsăm să mănânce.

Pentru a face acest lucru, am crea o metodă publică numită „Mănâncă”, iar acest lucru ar face un sunet alimentar, crescând în același timp greutatea iepurelui:

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

Amintiți-vă, „public” înseamnă accesibil din afara clasei, iar „nul” înseamnă că metoda nu returnează date.

Apoi, din interiorul Program.cs, vom putea apela această metodă și acest lucru va face ca iepurele ales de noi să mănânce și să devină mai mare:

Console.WriteLine (Rabbit1.RabbitName + "cântărește" + Rabbit1.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "cântărește" + Rabbit1.RabbitWeight + "kg");

Asta îl va determina pe Jeff să mănânce de trei ori, apoi îl vom auzi și vom putea vedea că a crescut. Dacă am avea un alt iepure pe scenă, ei ar putea mânca și ei!

Console.WriteLine (Rabbit1.RabbitName + "cântărește" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "cântărește" + Rabbit2.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "cântărește" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "cântărește" + Rabbit2.RabbitWeight + "kg");

La ea ca iepurii

Acesta nu este un mod deosebit de elegant de a gestiona o mulțime de obiecte, deoarece trebuie să scriem manual comenzile pentru fiecare iepure și nu putem crește dinamic numărul iepurilor cât ne dorim. Nu dorim doar să învățăm C # - vrem să învățăm cum să scriem codul C # curat!

Acesta este motivul pentru care am putea folosi o listă. O listă este o colecție; variabilă în sine care conține practic referințe la alte variabile. În acest caz, am putea face o listă de Iepuri, iar vestea bună este că acest lucru este foarte ușor de înțeles:

Listă RabbitList = Listă nouă(); RabbitList.Add (nou Rabbit („Jeff”, „maro”, 1, 1)); RabbitList.Add (nou Rabbit („Sam”, „alb”, 1, 2));

Acest lucru creează noul iepure ca înainte, dar adaugă simultan iepurele pe listă. În egală măsură, am putea spune acest lucru:

Rabbit Rabbit3 = iepure nou ("Jonny", "portocaliu", 1, 1); RabbitList.Add (Rabbit3);

Oricum, un obiect a fost creat și adăugat la listă.

De asemenea, putem returna în mod convenabil și elegant informațiile din lista iepurilor noștri astfel:

foreach (var Rabbit in RabbitList) {Console.WriteLine (Rabbit.RabbitName + "cântărește" + Rabbit.RabbitWeight + "kg"); }

După cum s-ar putea să vă dați seama, „predica” înseamnă că repetați un pas o dată pentru fiecare articol din listă. Puteți prelua informații din lista dvs. astfel:

RabbitList.Eat ();

Aici „1” este indicele, adică te referi la informațiile stocate la prima poziție. După cum se întâmplă, aceasta este de fapt al doilea iepure pe care l-ai adăugat totuși: deoarece listele din programare încep întotdeauna de la 0.

Fibonacci

În cazul în care nu ați ghicit încă, vom folosi acum toate aceste informații pentru a crea o secvență Fibonacci. Până la urmă, dacă înveți C # pentru Android, ar trebui să fii capabil să faci de fapt ceva interesant cu toată acea teorie!

În secvența Fibonacci, iepurii sunt închisi într-o cameră și lăsați să se reproducă. Se pot reproduce după o lună, moment în care sunt maturi sexual (nu pot confirma dacă este corectă biologia iepurelui). Dacă fiecare cuplu de iepure poate produce o dată pe lună de atunci, producând doi urmași, iată cum arată secvența:

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

Magic, fiecare număr din secvență este valoarea celor două numere anterioare adăugate împreună. Potrivit științei, acesta este un lucru mare.

Lucrul mișto este că putem reproduce asta.

În primul rând, trebuie să introducem un concept nou: bucla. Acest lucru repetă pur și simplu același cod de mai multe ori până când o condiție este îndeplinită. Bucla „for” ne permite acest lucru prin crearea unei variabile, setarea condițiilor pe care dorim să le îndeplinim, și apoi operarea pe ea - toate definite în paranteze:

for (int luni = 0; luni <100; luni ++) {// Faceți ceva}

Așadar, creăm un număr întreg numit luni și facem o buclă până când este egal cu 100. Apoi, creștem numărul de luni cu una.

Doriți să vedeți cum poate deveni această secvență Fibonacci? Iată:

namespace ConsoleApp2 {program Program {static void Main (string args) {List RabbitList = Listă nouă(); RabbitList.Add (noua iepure („Jeff”, „maro”, 0, 1)); RabbitList.Add (nou Rabbit („Sam”, „alb”, 0, 1)); pentru (luni int = 0; luni <10; luni ++) {int primaRabbit = 0; int timesToReproduce = 0; foreach (var Rabbit in RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } else {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } for (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (new Rabbit ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (nou Rabbit ("NewBabyRabbit", "brown", 0, 1)); Console.Write ( "r"); Console.Write ( "r"); } Console.WriteLine ("--- Există" + RabbitList.Count / 2 + "perechi de iepuri!"); Console.WriteLine ( ""); } Console.WriteLine ("Toate gata!"); Console.ReadKey (); }}}

Bine, asta a fost mai greu decât credeam!

Nu voi trece prin toate acestea, dar folosind ceea ce ai aflat deja, ar trebui să poți să-l inversezi.

Cu siguranță, există modalități mai elegante de a face acest lucru - nu sunt matematician. Cu toate acestea, cred că este un exercițiu destul de distractiv și, odată ce îl poți face, ești pregătit pentru marele timp.

Aș dori să văd alte abordări, apropo!

Unde mergem de aici? Cum să înveți C # pentru Android

Cu toate aceste cunoștințe sub centura dvs., sunteți gata să începeți lucrurile mai mari. În special, sunteți gata să luați înțelegere la programarea Android cu C # în Xamarin sau Unity.

Acest lucru este diferit, deoarece veți utiliza clase furnizate de Google, Microsoft și Unity. Când scrieți ceva de genul „RigidBody2D.velocity”, ceea ce faceți este să accesați o proprietate dintr-o clasă denumit RigidBody2D. Acest lucru funcționează la fel, singura diferență este că nu puteți vedea RigidBody2D pentru că nu l-ați construit singur.

Cu acest C # de sub centură, ar trebui să fii gata să sari în oricare dintre aceste opțiuni și să ai un început mare atunci când vine vorba de a înțelege ce se întâmplă:

  • Cum se face o aplicație Android cu Xamarin
  • Construiește-ți primul joc Android în 7 minute cu Unity

Într-o lecție viitoare, vom analiza, de asemenea, cum puteți să faceți o tura în U și să o utilizați pentru a construi aplicații Windows în loc!

eria Google Pixel 4 face parte dintr-un număr din ce în ce mai mare de telefoane care oferă rate mai mari de actualizare a afișajului, ceea ce duce la derularea și performanța mai ușoară în ...

Întreaga lume tehnologică a fot urprină ieri, când Google și-a co propriul martphone Google Pixel 4. Aceată curgere timpurie i-a determinat pe unii ă creadă că telefonul ar putea lana mai de...

Iti Recomandam