Aprenda C # para Android parte 2: clases y bucles

Autor: John Stephens
Fecha De Creación: 24 Enero 2021
Fecha De Actualización: 1 Mes De Julio 2024
Anonim
COMO CREAR 3 TIPOS DE VIRUS FÁCIL - BROMA
Video: COMO CREAR 3 TIPOS DE VIRUS FÁCIL - BROMA

Contenido


En la primera parte de esta serie de tutoriales de Android sobre el aprendizaje de C #, observamos los conceptos básicos absolutos de la programación de C #. Cubrimos métodos (grupos de código que realizan tareas específicas), alguna sintaxis básica (como la necesidad de punto y coma), variables (contenedores que almacenan datos) y "declaraciones if" para el control de flujo (código de ramificación que depende de los valores de variables). También vimos cómo pasar variables como cadenas como argumentos entre métodos.

Deberías volver y echarle un vistazo si aún no lo has leído.

En este punto, debería poder hacer algunas aplicaciones de consola básicas, como pruebas, aplicaciones que almacenan datos o calculadoras.

En la segunda parte, vamos a ser un poco más ambiciosos, cubriendo algunos conceptos básicos, como bucles, y explorando cómo crear e interactuar con las clases. Eso significa que podremos comenzar a probar el desarrollo de Android y ver cómo cerrar esa brecha. ¡Continúa leyendo si realmente quieres aprender C #!


Comprender las clases y la programación orientada a objetos.

Brevemente en la primera parte, explicamos los conceptos básicos de la Programación Orientada a Objetos, que gira en torno a los lenguajes usando "clases" para describir "objetos". Un objeto es una pieza de datos, que puede representar muchas cosas. Podría ser un objeto literal en un mundo de juego como un resorte, o podría ser algo más abstracto, como un gerente que maneja el puntaje del jugador.

Una sola clase puede crear múltiples objetos. Entonces podrías escribir una clase de "enemigo", pero ser capaz de generar un nivel completo lleno de malos. Este es uno de los grandes beneficios de usar programación orientada a objetos. De lo contrario, la única forma de manejar el comportamiento de una multitud de enemigos sería utilizar muchos métodos individuales, cada uno con instrucciones sobre cómo debe comportarse el malo en diferentes circunstancias.


Si esto sigue siendo un poco difícil de entender, todo lo que realmente necesita saber es que los objetos tienen propiedades y comportamientos. Esto es como los objetos reales. Por ejemplo, un conejo tiene propiedades como tamaño, color y nombre; y tiene comportamientos, como saltar, sentarse y comer. Esencialmente, las propiedades son variables y los comportamientos son métodos.

El programa que creamos en la última lección también es un ejemplo de una clase. El "objeto" que describimos aquí es algún tipo de sistema de control de contraseña. La propiedad que tiene es la cadena UserName, y el comportamiento que tiene es NewMethod (verificando el nombre del usuario y saludándolo).

Si eso estodavía un poco confuso, ¡la única forma de entenderlo es creando una o dos clases nuevas nosotros mismos!

Creando una nueva clase

Si vas a aprender C #, debes saber cómo hacer nuevas clases. Afortunadamente, esto es muy fácil. Simplemente haga clic en el elemento del menú Proyecto y luego seleccione "+ Agregar clase".

Elija "C #" y llámelo "Conejo". Vamos a utilizar esta clase para crear conejos conceptuales. Verás lo que quiero decir en un momento.

Si registra su Explorador de soluciones a la derecha, verá que se ha creado un nuevo archivo llamado Rabbit.cs justo debajo de Program.cs. Bien hecho, ¡esa es una de las cosas más importantes que debes saber si quieres aprender C # para Android!

El nuevo archivo Rabbit.cs tiene parte del mismo código "repetitivo" que antes. Todavía pertenece al mismo espacio de nombres y tiene una clase con el mismo nombre que el archivo.

espacio de nombres ConsoleApp2 {clase Conejo {}}

Ahora vamos a darle a nuestro conejo algunas propiedades con lo que llamamos un "constructor".

Un constructor es un método en una clase que inicializa el objeto, lo que nos permite definir sus propiedades cuando lo creamos por primera vez. En este caso, esto es lo que vamos a decir:

espacio de nombres ConsoleApp2 {class Rabbit {public string RabbitName; cadena pública RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (String name, String color, int age, int weight) {RabbitName = name; RabbitColor = color; RabbitAge = edad; RabbitWeight = peso; }}}

Esto nos permite crear un nuevo conejo de una clase diferente y definir sus propiedades como lo hacemos:

Rabbit Rabbit1 = nuevo Rabbit ("Jeff", "brown", 1, 1);

Ahora me doy cuenta de que, en retrospectiva, el peso probablemente debería haber sido un flotador o un doble para permitir decimales, pero se entiende la idea. Vamos a redondear nuestro conejo al número entero más cercano.

Verá que al escribir su conejo, se le pedirá que pase los argumentos correctos. De esta manera, su clase se ha convertido casi en parte del código.

Lo creas o no, ¡este código ha creado un conejo! No puedes ver a tu conejo porque no tenemos gráficos, pero está ahí.

Y para demostrarlo, ahora puede usar esta línea:

Console.WriteLine (Rabbit1.RabbitName);

¡Esto te dirá el nombre del conejo que acabas de crear!

También podemos aumentar el peso de nuestro conejo, así:

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

Tenga en cuenta que agregar "++" al final de algo aumentará gradualmente su valor en uno (también podría escribir "RabbitWeight = RabbitWeight + 1").

Debido a que nuestra clase puede hacer tantos conejos como queramos, podemos crear muchos conejos diferentes, cada uno con sus propias propiedades.

Agregar comportamientos

Entonces también podríamos elegir darle a nuestro conejo algún tipo de comportamiento. En este caso, vamos a dejarlos comer.

Para hacer esto, crearíamos un método público llamado "Eat", y esto emitiría un sonido de comer, al tiempo que aumentaría gradualmente el peso del conejo:

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

Recuerde, "público" significa accesible desde fuera de la clase, y "nulo" significa que el método no devuelve ningún dato.

Luego, desde Program.cs, podremos llamar a este método y esto hará que el conejo de nuestra elección coma y se haga más grande:

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

¡Eso hará que Jeff coma tres veces, luego lo escucharemos y podremos ver que se ha vuelto más grande! Si tuviéramos otro conejo en la escena, ¡también podrían comer!

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

En eso como conejos

Esta no es una forma particularmente elegante de manejar muchos objetos, ya que necesitamos escribir los comandos para cada conejo manualmente y no podemos aumentar dinámicamente la cantidad de conejos todo lo que queramos. No solo queremos aprender C #, ¡queremos aprender a escribir código C # limpio!

Es por eso que podríamos usar una lista. Una lista es una colección; variable en sí misma que básicamente contiene referencias a otras variables. En este caso, podríamos hacer una lista de conejos, y la buena noticia es que es muy fácil de entender:

Lista RabbitList = nueva lista(); RabbitList.Add (nuevo Rabbit ("Jeff", "brown", 1, 1)); RabbitList.Add (nuevo Rabbit ("Sam", "blanco", 1, 2));

Esto crea el nuevo conejo como antes, pero al mismo tiempo agrega el conejo a la lista. Igualmente, podríamos decir esto:

Rabbit Rabbit3 = nuevo Rabbit ("Jonny", "naranja", 1, 1); RabbitList.Add (Rabbit3);

De cualquier manera, un objeto ha sido creado y agregado a la lista.

También podemos devolver información de nuestra lista de conejos de manera conveniente y elegante de esta manera:

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

Como puede descubrir, "foreach" significa que repite un paso una vez para cada elemento de la lista. También puede recuperar información de su lista de esta manera:

RabbitList.Eat ();

Aquí "1" es el índice, lo que significa que se refiere a la información almacenada en la posición uno. De hecho, esa es realmente la segundo aunque agregaste conejo: porque las listas en la programación siempre comienzan en 0.

Fibonacci

En caso de que aún no lo haya adivinado, ahora utilizaremos toda esta información para crear una secuencia de Fibonacci. Después de todo, si estás aprendiendo C # para Android, ¡deberías poder hacer algo interesante con toda esa teoría!

En la secuencia de Fibonacci, los conejos se encierran en una habitación y se dejan criar. Pueden reproducirse después de un mes, momento en el que son sexualmente maduros (no puedo confirmar si esta es la biología correcta del conejo). Si cada pareja de conejos puede producir una vez al mes en adelante, produciendo dos crías, así es como se ve la secuencia:

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

Mágicamente, cada número en la secuencia es el valor de los dos números anteriores sumados. Según la ciencia, esto es un gran problema.

Lo bueno es que podemos replicar eso.

Primero, necesitamos introducir un nuevo concepto: el bucle. Esto simplemente repite el mismo código una y otra vez hasta que se cumpla una condición. El ciclo "for" nos permite hacer esto creando una variable, estableciendo las condiciones que queremos cumplir y luego operando en ella, todo definido entre paréntesis:

for (int months = 0; months <100; months ++) {// Hacer algo}

Por lo tanto, estamos creando un número entero llamado meses y haciendo un bucle hasta que sea igual a 100. Luego aumentamos el número de meses en uno.

¿Quieres ver cómo esto puede convertirse en una secuencia de Fibonacci? Mirad:

namespace ConsoleApp2 {programa de clase {static void Main (string args) {List RabbitList = nueva lista(); RabbitList.Add (nuevo Rabbit ("Jeff", "brown", 0, 1)); RabbitList.Add (nuevo Rabbit ("Sam", "blanco", 0, 1)); para (int meses = 0; meses <10; meses ++) {int firstRabbit = 0; int timesToReproduce = 0; foreach (var Rabbit en 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", "marrón", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Hay" + RabbitList.Count / 2 + "pares de conejos!"); Console.WriteLine (""); } Console.WriteLine ("¡Todo listo!"); Console.ReadKey (); }}}

¡Bien, eso fue más difícil de lo que pensaba!

No voy a pasar por todo esto, pero usando lo que ya has aprendido, deberías poder realizar ingeniería inversa.

Definitivamente hay formas más elegantes de hacer esto: no soy matemático. Sin embargo, creo que es un ejercicio bastante divertido, y una vez que puedes hacerlo, estás listo para el gran momento.

Por cierto, me encantaría ver otros enfoques.

¿A dónde vamos desde aquí? Cómo aprender C # para Android

Con todo ese conocimiento en tu haber, estás listo para comenzar con cosas más grandes. En particular, estás listo para probar la programación de Android con C # en Xamarin o Unity.

Esto es diferente porque usará clases proporcionadas por Google, Microsoft y Unity. Cuando escribe algo como "RigidBody2D.velocity", lo que está haciendo es acceder a una propiedad de una clase llamado RigidBody2D. Esto funciona igual, la única diferencia es que no puede ver RigidBody2D porque no lo compiló usted mismo.

Con este C # en su haber, debe estar listo para saltar a cualquiera de estas opciones y tener una gran ventaja cuando se trata de comprender lo que está sucediendo:

  • Cómo hacer una aplicación de Android con Xamarin
  • Crea tu primer juego de Android en 7 minutos con Unity

En una próxima lección, también veremos cómo puede dar un giro en U y usar esto para crear aplicaciones de Windows.

Durante el evento de tranmiión en vivo Uncarrier 1.0 de T-Mobile, la compañía preentó vario programa nuevo que e lanzarán cuando finalice u fuión print. Uno de ello e u n...

Hemo etado ecuchando mucho obre el ervicio 5G en lo último año y cómo va a cambiar el mundo. i bien 5G e ciertamente una revolución en un entido macro, ¿cómo va a afectar...

Artículos Fascinantes