Apreneu C # per a la segona part d'Android: Classes i bucles

Autora: John Stephens
Data De La Creació: 24 Gener 2021
Data D’Actualització: 1 Juliol 2024
Anonim
Apreneu C # per a la segona part d'Android: Classes i bucles - Aplicacions
Apreneu C # per a la segona part d'Android: Classes i bucles - Aplicacions

Content


A la primera part d'aquesta sèrie de tutorials d'Android sobre l'aprenentatge de C #, vam analitzar els fonaments bàsics de la programació de C #. Vam cobrir mètodes (grups de codi que realitzen tasques específiques), algunes de sintaxi bàsica (com ara la necessitat de semiconsons), variables (contenidors que emmagatzemen dades) i "if instruccions" per al control de flux (codi de ramificació que depèn dels valors. de variables). També vam veure com passar variables com les cadenes com a arguments entre mètodes.

Hauríeu de tornar enrere i fer una ullada a això si encara no ho heu llegit.

En aquest moment, hauríeu de poder fer algunes aplicacions bàsiques de consola, com ara proves de prova, aplicacions que emmagatzemen dades o calculadores.

A la segona part, anirem una mica més ambiciosos, incloent alguns aspectes bàsics (com bucles) i explorarem com crear i interactuar amb les classes. Això vol dir que podrem començar a agafar un fort graó en el desenvolupament d'Android i veure com suprimir aquest buit. Continua llegint si vols aprendre veritablement C #!


Comprensió de classes i programació orientada a objectes

Breument a la primera part, hem explicat els fonaments de la programació orientada a objectes, que gira entorn dels idiomes mitjançant "classes" per descriure "objectes". Un objecte és una dada que pot representar moltes coses. Podria ser un objecte literal en un món de jocs com un ressort, o pot ser una cosa més abstracta, com un mànager que aconsegueixi la puntuació del jugador.

Una sola classe pot crear diversos objectes. De manera que podríeu escriure una classe “enemiga”, però ser capaç de generar un nivell sencer ple de dolents. Aquest és un dels grans avantatges de l’ús de la programació orientada a objectes. En cas contrari, l’única manera de manejar el comportament d’una multitud d’enemics seria utilitzar molts mètodes individuals, cadascun d’ells que contingués instruccions sobre com s’hauria de comportar el dolent en diferents circumstàncies.


Si encara és una mica complicat per treure el cap, només cal saber que els objectes tenen propietats i comportaments. Això és com objectes reals. Per exemple, un conill té propietats com la mida, el color i el nom; i té comportaments, com saltar, seure i menjar. Essencialment, les propietats són variables i els comportaments són mètodes.

El programa que hem creat a la darrera lliçó és també un exemple de classe. L’objecte que descrivim aquí és un tipus de sistema de control de contrasenyes. La propietat que té és la secció UserName i el comportament que té és NewMethod (comprovant el nom de l’usuari i saludant-los).

Si ésencara una mica confús, l’única manera de posar-nos al cap és crear una classe nova o dos nosaltres!

Creació d'una nova classe

Si aneu a aprendre C #, heu de saber com fer classes noves. Afortunadament, això és molt fàcil. Feu clic a l’element del menú Projecte i, a continuació, seleccioneu “+ Afegir classe”.

Trieu "C #" i truqueu-ho "Conill". Utilitzarem aquesta classe per crear conills conceptuals. Veureu què vull dir en un moment.

Si comproveu a l’Explorador de solucions a la dreta, veureu que s’ha creat un fitxer nou anomenat Rabbit.cs a sota de Program.cs. Ben fet: això és una de les coses més importants per saber si voleu aprendre C # per a Android.

El nou fitxer Rabbit.cs té alguns del mateix codi "placa de caldera" que fins ara. Encara pertany al mateix espai de noms i té una classe amb el mateix nom que el fitxer.

namespace ConsoleApp2 {class Rabbit {}}

Ara li donarem algunes propietats al conill amb el que anomenem "constructor".

Un constructor és un mètode d'una classe que inicialitza l'objecte, que ens permet definir les seves propietats quan el creem per primera vegada. En aquest cas, es tracta del que direm:

namespace ConsoleApp2 {class Rabbit {public string RabbitName; cadena pública RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (nom de la cadena, color de la cadena, edat int, pes int) {RabbitName = nom; RabbitColor = color; RabbitAge = edat; RabbitWeight = pes; }}}

Això ens permet crear un conill nou a partir d'una classe diferent, i definir les seves propietats com ho fem:

Conill conill1 = nou conill ("Jeff", "marró", 1, 1);

Ara m’adono que en pes retrospectiu el pes hauria d’haver estat un flotador o un doble per permetre nombres decimals, però us en feu la idea. Anirem arrodonint el nostre conill al nombre sencer més proper.

Com veureu que escriu el conill, se us demanarà que passeu els arguments correctes. D’aquesta manera, la vostra classe s’ha convertit gairebé en una part del codi.

Ho creieu o no, aquest codi ha creat un conill. No podeu veure el vostre conill perquè no tenim cap gràfic, però hi és.

I per provar-ho, ja podeu utilitzar aquesta línia:

Console.WriteLine (Rabbit1.RabbitName);

Aleshores, us dirà el nom del conill que heu creat!

També podem augmentar el pes del nostre conill, així:

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

Tingueu en compte que l'addició de "++" al final d'alguna cosa augmentarà incrementalment el seu valor en un (També podeu escriure "RabbitWeight = RabbitWeight + 1").

Com que la nostra classe pot fer tants conills com vulguem, podem crear molts conills diferents, cadascun amb les seves pròpies propietats.

Afegint conductes

Aleshores, també podríem optar per comportar algun tipus de conill al nostre conill. En aquest cas, deixem-los menjar.

Per fer-ho, crearíem un mètode públic anomenat "Menjar", i això faria sonar l'alimentació, alhora que augmentaria incrementalment el pes del conill:

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

Recordeu que "públic" significa accessible des de fora de la classe i "nul" significa que el mètode no retorna cap dada.

Aleshores, des de dins de Program.cs, podrem anomenar aquest mètode i això farà que el conill que escolliu sigui més gran i es faci més gran:

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

Això farà que Jeff mengi tres vegades, ja ho sentirem i podrem veure que ha augmentat. Si tinguéssim un altre conill a escena, també podrien menjar!

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

Al igual que els conills

No es tracta d’una manera especialment elegant de manejar molts objectes, ja que hem d’escriure les comandes de cada conill de forma manual i no podem augmentar dinàmicament el nombre de conills tant com vulguem. No volem aprendre C #, sinó aprendre a escriure codi C # net!

És per això que podríem utilitzar una llista. Una llista és una col·lecció; la pròpia variable que bàsicament conté referències a altres variables. En aquest cas, podríem fer una llista de conills, i la bona notícia és que és molt fàcil d'entendre:

Llista RabbitList = llista nova(); RabbitList.Add (nou Conill ("Jeff", "marró", 1, 1)); RabbitList.Add (nou Conill ("Sam", "blanc", 1, 2));

Això crea el nou conill com abans, però alhora afegeix el conill a la llista. Igualment, podríem dir això:

Conill conill3 = nou conill ("Jonny", "taronja", 1, 1); RabbitList.Add (Rabbit3);

De qualsevol forma, un objecte s'ha creat i afegit a la llista.

També podem retornar informació còmoda i elegant de la nostra llista de conills d'aquesta manera:

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

Com podeu saber, "foreach" significa que repetiu un pas per cada element de la llista. També podeu obtenir informació de la vostra llista:

RabbitList.Eat ();

Aquí "1" és l'índex, és a dir, que es refereix a la informació emmagatzemada a la primera posició. Tal i com passa, això és realment segon heu afegit un conill: perquè les llistes de programació comencen sempre a 0.

Fibonacci

En cas que encara no ho hagueu endevinat, ara utilitzarem tota aquesta informació per crear una seqüència Fibonacci. Al cap i a la fi, si esteu aprenent C # per Android, hauríeu de ser capaços de fer alguna cosa interessant amb tota aquesta teoria.

A la seqüència de Fibonacci, els conills es tanquen en una habitació i es deixen reproduir. Es poden reproduir al cap d’un mes, moment en què són sexualment madurs (no puc confirmar si aquesta és la biologia correcta del conill). Si cada parella de conills pot produir una vegada al mes a partir d’aleshores, produint dues cries, aquí es mostra la seqüència:

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

Màgicament, cada número de la seqüència és el valor dels dos números anteriors afegits. Segons la ciència, es tracta d'una gran quantitat.

El més maco és que podem replicar això.

Primer, hem d’introduir un concepte nou: el bucle. Simplement es repeteix el mateix codi una i altra vegada fins que es compleix una condició. El bucle "per" ens permet fer-ho creant una variable, establint les condicions que volem complir i, seguidament, operant-hi: tot definit entre claudàtors:

durant (mesos int = 0; mesos <100; mesos ++) {// Feu alguna cosa}

Així doncs, creem un nombre sencer anomenat mesos i anem en un límit fins que sigui igual a 100. Després augmentem el nombre de mesos un.

Voleu veure com es pot convertir en una seqüència Fibonacci? Vet aquí:

namespace ConsoleApp2 {Class Program {static void Main (string args) {Llista RabbitList = llista nova(); RabbitList.Add (nou Conill ("Jeff", "marró", 0, 1)); RabbitList.Add (nou Conill ("Sam", "blanc", 0, 1)); durant (mesos int = 0; mesos <10; mesos ++) {int primerRabbit = 0; int timesToReproduce = 0; foreach (var Rabbit a RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } else {firstRabbit = 0; timesToReproduire ++; }} Rabbit.RabbitAge ++; } for (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (new Rabbit ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (nou Conill ("NewBabyRabbit", "brown", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Hi ha" + RabbitList.Count / 2 + "parells de conills!"); Console.WriteLine (""); } Console.WriteLine ("Tot fet!"); Consola.ReadKey (); }}}

Va ser més difícil del que em pensava.

No passaré per tot això, però utilitzant el que ja heu après, hauríeu de ser capaç de revertir-lo.

Sens dubte hi ha maneres més elegants de fer-ho, no sóc matemàtic. Tot i això, crec que és un exercici força divertit i, un cop ho pugueu fer, ja esteu preparats per al gran moment.

A mi m’encantaria veure altres enfocaments!

On anem d’aquí? Com aprendre C # per a Android

Amb tot aquest coneixement al vostre cinturó, esteu preparats per començar a fer coses més grans. En particular, esteu preparat per agafar punyalada a la programació d'Android amb C # a Xamarin o Unity.

Això és diferent perquè utilitzeu classes proporcionades per Google, Microsoft i Unity. Quan escrius quelcom com a "RigidBody2D.velocity", el que estàs fent és accedir a una propietat d'una classe. anomenat RigidBody2D. Funciona igual, l'única diferència és que no podreu veure RigidBody2D perquè no ho heu creat tu mateix.

Amb aquest C # sota el cinturó, hauríeu d’estar disposat a saltar a qualsevol d’aquestes opcions i tenir un gran avantatge a l’hora d’entendre el que passa:

  • Com fer una aplicació per a Android amb Xamarin
  • Creeu el vostre primer joc Android en 7 minuts amb Unity

En una propera lliçó, també veurem com podeu fer una volta en U i utilitzar-la per crear aplicacions de Windows.

Huawei P30 Pro compta amb una gran pantalla OLED de 6.47 polzade de doble corba que permet al propietari veure foto, vídeo, aplicacion i altre contingut amb molta claredat. Val a dir que cal un p...

La Huawei P30 té una pantalla OLED plana de 6,1 polzade que permet al propietari veure foto, vídeo, aplicacion i altre contingut amb una reolució de 2.340 x 1.080. i teniu aquet tel...

Articles Recents