Scopri C # per Android parte 2: classi e loop

Autore: John Stephens
Data Della Creazione: 24 Gennaio 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Come creare una landing page con WordPress e il tema Divi, guida completa in italiano (1h30min)
Video: Come creare una landing page con WordPress e il tema Divi, guida completa in italiano (1h30min)

Contenuto


Nella prima parte di questa serie di tutorial Android sull'apprendimento di C #, abbiamo esaminato le basi assolute della programmazione di C #. Abbiamo coperto metodi (gruppi di codice che eseguono attività specifiche), alcune sintassi di base (come la necessità di punti e virgola), variabili (contenitori che memorizzano dati) e "if istruzioni" per il controllo del flusso (codice di ramificazione che dipende dai valori di variabili). Abbiamo anche visto come passare variabili come stringhe come argomenti tra metodi.

Dovresti tornare indietro e dare un'occhiata a questo se non l'hai già letto.

A questo punto, dovresti essere in grado di creare alcune app di console di base, come quiz, app che memorizzano dati o calcolatrici.

Nella seconda parte, diventeremo un po 'più ambiziosi, coprendo alcune nozioni di base - come i loop - ed esplorando come creare e interagire con le classi. Ciò significa che saremo in grado di iniziare a provare lo sviluppo di Android e vedere come colmare tale divario. Continua a leggere se vuoi davvero imparare C #!


Comprensione delle classi e programmazione orientata agli oggetti

Brevemente nella prima parte, abbiamo spiegato le basi della programmazione orientata agli oggetti, che ruota attorno ai linguaggi usando "classi" per descrivere gli "oggetti". Un oggetto è un pezzo di dati, che può rappresentare molte cose. Potrebbe essere un oggetto letterale in un mondo di gioco come una molla, oppure potrebbe essere qualcosa di più astratto, come un manager che gestisce il punteggio del giocatore.

Una singola classe può creare più oggetti. Quindi potresti scrivere una classe "nemica", ma essere in grado di generare un intero livello pieno di cattivi. Questo è uno dei maggiori vantaggi dell'utilizzo della programmazione orientata agli oggetti. Altrimenti, l'unico modo per gestire il comportamento di una moltitudine di nemici sarebbe usare molti metodi individuali, ognuno contenente istruzioni su come il cattivo dovrebbe comportarsi in circostanze diverse.


Se questo è ancora un po 'complicato da far girare la testa, tutto ciò che devi sapere è che gli oggetti hanno proprietà e comportamenti. Questo è proprio come oggetti reali. Ad esempio, un coniglio ha proprietà come dimensione, colore e nome; e ha comportamenti come saltare, sedersi e mangiare. In sostanza, le proprietà sono variabili e i comportamenti sono metodi.

Il programma che abbiamo creato nell'ultima lezione è anche un esempio di classe. L '"oggetto" che stiamo descrivendo qui è una specie di sistema di controllo della password. La proprietà che ha è la stringa UserName e il comportamento che ha è NewMethod (verifica il nome dell'utente e saluto).

Se è cosìancora un po 'confuso, l'unico modo per aggirare la nostra testa è creare noi stessi una nuova classe o due!

Creare una nuova classe

Se hai intenzione di imparare C #, devi sapere come creare nuove lezioni. Fortunatamente, questo è molto semplice. Basta fare clic sulla voce di menu Progetto e quindi selezionare "+ Aggiungi classe".

Scegli "C #" e chiamalo "Coniglio". Useremo questa classe per creare conigli concettuali. Vedrai cosa intendo tra un momento.

Se accedi a Esplora soluzioni sulla destra, vedrai che un nuovo file chiamato Rabbit.cs è stato creato proprio sotto Program.cs. Ben fatto - questa è una delle cose più importanti da sapere se vuoi imparare C # per Android!

Il nuovo file Rabbit.cs ha un po 'dello stesso codice "boilerplate" di prima. Appartiene ancora allo stesso spazio dei nomi e ha una classe con lo stesso nome del file.

spazio dei nomi ConsoleApp2 {class Rabbit {}}

Ora daremo al nostro coniglio alcune proprietà con quello che chiamiamo "costruttore".

Un costruttore è un metodo in una classe che inizializza l'oggetto, permettendoci di definirne le proprietà quando lo creiamo per la prima volta. In questo caso, ecco cosa diremo:

namespace ConsoleApp2 {class Rabbit {stringa pubblica RabbitName; stringa pubblica RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (Nome stringa, Colore stringa, int age, int weight) {RabbitName = name; RabbitColor = color; RabbitAge = età; RabbitWeight = peso; }}}

Questo ci consente di creare un nuovo coniglio da una classe diversa e definirne le proprietà mentre facciamo:

Rabbit Rabbit1 = new Rabbit (“Jeff”, “brown”, 1, 1);

Ora mi rendo conto che in retrospettiva il peso avrebbe probabilmente dovuto essere un galleggiante o un doppio per consentire i decimali, ma hai avuto l'idea. Arrotonderemo il nostro coniglio al numero intero più vicino.

Vedrai mentre scrivi il tuo coniglio, ti verrà chiesto di passare gli argomenti corretti. In questo modo, la tua classe è diventata quasi una parte del codice.

Che ci crediate o no, questo codice ha creato un coniglio! Non puoi vedere il tuo coniglio perché non abbiamo alcuna grafica, ma è lì.

E per dimostrarlo, ora puoi usare questa linea:

Console.WriteLine (Rabbit1.RabbitName);

Questo ti dirà quindi il nome del coniglio che hai appena creato!

Allo stesso modo possiamo aumentare il peso del nostro coniglio, in questo modo:

Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "pesa" + Rabbit1.RabbitWeight + "kg");

Nota qui che l'aggiunta di "++" alla fine di qualcosa aumenterà in modo incrementale il suo valore di uno (potresti anche scrivere "RabbitWeight = RabbitWeight + 1").

Poiché la nostra classe può creare tutti i conigli che vogliamo, possiamo creare molti conigli diversi, ognuno con le proprie proprietà.

Aggiunta di comportamenti

Potremmo quindi anche scegliere di dare al nostro coniglio un qualche tipo di comportamento. In questo caso, lasciamoli mangiare.

Per fare questo, creeremmo un metodo pubblico chiamato "Eat", e questo renderebbe un suono mangiante, aumentando anche in modo incrementale il peso del coniglio:

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

Ricorda che "pubblico" significa accessibile dall'esterno della classe e "vuoto" indica che il metodo non restituisce alcun dato.

Quindi, dall'interno di Program.cs, saremo in grado di chiamare questo metodo e questo farà mangiare e aumentare le dimensioni del coniglio di nostra scelta:

Console.WriteLine (Rabbit1.RabbitName + "pesa" + Rabbit1.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "pesa" + Rabbit1.RabbitWeight + "kg");

Ciò farà mangiare Jeff tre volte, poi lo sentiremo e vedremo che è diventato più grande! Se avessimo un altro coniglio sulla scena, potrebbero mangiare anche loro!

Console.WriteLine (Rabbit1.RabbitName + "pesa" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "pesa" + Rabbit2.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "pesa" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "pesa" + Rabbit2.RabbitWeight + "kg");

A come i conigli

Questo non è un modo particolarmente elegante per gestire molti oggetti, poiché dobbiamo scrivere i comandi per ogni coniglio manualmente e non possiamo aumentare dinamicamente il numero di conigli per quanto vogliamo. Non vogliamo solo imparare C # - vogliamo imparare a scrivere codice C # pulito!

Questo è il motivo per cui potremmo usare un elenco. Un elenco è una raccolta; variabile stessa che sostanzialmente contiene riferimenti ad altre variabili. In questo caso, potremmo fare un elenco di conigli e la buona notizia è che questo è molto facile da capire:

Elenco RabbitList = nuova lista(); RabbitList.Add (new Rabbit ("Jeff", "brown", 1, 1)); RabbitList.Add (new Rabbit ("Sam", "white", 1, 2));

Questo crea il nuovo coniglio come prima, ma allo stesso tempo aggiunge il coniglio alla lista. Allo stesso modo, potremmo dire questo:

Rabbit Rabbit3 = new Rabbit ("Jonny", "orange", 1, 1); RabbitList.Add (Rabbit3);

In entrambi i casi, un oggetto è stato creato e aggiunto all'elenco.

In questo modo possiamo anche restituire in modo conveniente ed elegante informazioni dalla nostra lista dei conigli:

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

Come potresti riuscire a capire, "foreach" significa ripetere un passaggio una volta per ogni elemento dell'elenco. Puoi anche recuperare informazioni dal tuo elenco in questo modo:

RabbitList.Eat ();

Qui "1" è l'indice, nel senso che ci si riferisce alle informazioni memorizzate nella posizione uno. In effetti, questo è in realtà il secondo coniglio hai aggiunto però: perché le liste in programmazione iniziano sempre da 0.

Fibonacci

Nel caso in cui non avessi ancora indovinato, ora useremo tutte queste informazioni per creare una sequenza di Fibonacci. Dopotutto, se stai imparando C # per Android, dovresti essere in grado di fare davvero qualcosa di interessante con tutta quella teoria!

Nella sequenza di Fibonacci, i conigli sono chiusi in una stanza e lasciati allevare. Possono riprodursi dopo un mese, a quel punto sono sessualmente maturi (non posso confermare se questa è la biologia corretta del coniglio). Se ogni coppia di conigli riesce a produrre una volta al mese da quel momento in poi, producendo due figli, ecco come appare la sequenza:

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

Magicamente, ogni numero nella sequenza è il valore dei due precedenti numeri sommati. Secondo la scienza, questo è un grosso problema.

Il bello è che possiamo replicarlo.

Innanzitutto, dobbiamo introdurre un nuovo concetto: il ciclo. Questo semplicemente ripete ripetutamente lo stesso codice fino a quando non viene soddisfatta una condizione. Il ciclo "for" ci consente di creare una variabile, impostare le condizioni che vogliamo soddisfare e quindi operare su di essa - tutte definite tra parentesi:

per (int mesi = 0; mesi <100; mesi ++) {// Fai qualcosa}

Quindi stiamo creando un numero intero chiamato mesi e il ciclo fino a quando non è uguale a 100. Quindi aumentiamo il numero di mesi di uno.

Vuoi vedere come questo può diventare una sequenza di Fibonacci? Ecco:

namespace ConsoleApp2 {class class {void statico Main (string args) {Elenco RabbitList = nuova lista(); RabbitList.Add (new Rabbit ("Jeff", "brown", 0, 1)); RabbitList.Add (new Rabbit ("Sam", "white", 0, 1)); per (int mesi = 0; mesi <10; mesi ++) {int firstRabbit = 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 (new Rabbit ("NewBabyRabbit", "brown", 0, 1)); Console.Write ( "r"); Console.Write ( "r"); } Console.WriteLine ("--- Ci sono" + RabbitList.Count / 2 + "coppie di conigli!"); Console.WriteLine ( ""); } Console.WriteLine ("Tutto fatto!"); Console.ReadKey (); }}}

Ok, è stato più difficile di quanto pensassi!

Non esaminerò tutto questo, ma usando ciò che hai già appreso, dovresti essere in grado di decodificarlo.

Ci sono modi decisamente più eleganti per farlo: non sono un matematico. Tuttavia, penso che sia un esercizio abbastanza divertente, e una volta che puoi farlo, sei pronto per il grande momento.

A proposito, mi piacerebbe vedere altri approcci!

Dove andiamo da qui? Come imparare C # per Android

Con tutta questa conoscenza sotto la cintura, sei pronto per iniziare su cose più grandi. In particolare, sei pronto a provare la programmazione Android con C # in Xamarin o Unity.

Questo è diverso perché utilizzerai le classi fornite da Google, Microsoft e Unity. Quando scrivi qualcosa come "RigidBody2D.velocity" quello che stai facendo è accedere a una proprietà da una classe chiamato RigidBody2D. Funziona allo stesso modo, l'unica differenza è che non puoi vedere RigidBody2D perché non l'hai costruito tu stesso.

Con questo C # sotto la cintura, dovresti essere pronto a saltare in una di queste opzioni e avere un grande vantaggio quando si tratta di capire cosa sta succedendo:

  • Come realizzare un'app Android con Xamarin
  • Costruisci il tuo primo gioco Android in 7 minuti con Unity

In una lezione imminente, vedremo anche come puoi fare un'inversione di marcia e usarla per creare app di Windows!

Il amung Galaxy Watch potrebbe eere coniderato il coltellino vizzero di martwatch. Cerca di fare un po 'di tutto, dal monitoraggio del onno, al monitoraggio del fitne, ai pagamenti mobili, a tutte...

Aggiornamento, 11 ettembre 2019 (11:45 EDT): La beta di PlayGalaxy Link è ora ufficialmente diponibile per il download negli tati Uniti e in Corea. Vai u playgalaxy.com per caricarlo ul tuo comp...

Leggi Oggi