Learn C # for Android part 2: Classes et boucles

Auteur: John Stephens
Date De Création: 24 Janvier 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Android Development for Beginners - Full Course
Vidéo: Android Development for Beginners - Full Course

Contenu


Dans la première partie de cette série de tutoriels Android sur l'apprentissage de C #, nous avons examiné les bases absolues de la programmation en C #. Nous avons abordé les méthodes (groupes de code exécutant des tâches spécifiques), certaines syntaxes de base (telles que le besoin de points-virgules), les variables (conteneurs qui stockent des données) et les "instructions if" pour le contrôle de flux (code de branchement dépendant des valeurs de variables). Nous avons également vu comment passer des variables comme des chaînes en tant qu'arguments entre des méthodes.

Si vous ne l’avez pas déjà lu, vous devriez y revenir.

À ce stade, vous devriez pouvoir créer des applications de console de base, telles que des quiz, des applications qui stockent des données ou des calculatrices.


Dans la deuxième partie, nous allons devenir un peu plus ambitieux, en abordant davantage de notions de base, telles que les boucles, et en explorant la création et les interactions avec les classes. Cela signifie que nous pourrons commencer à essayer le développement d’Android et voir comment combler ce fossé. Continuez à lire si vous voulez vraiment apprendre le C #!

Comprendre les classes et la programmation orientée objet

Dans la première partie, nous avons brièvement expliqué les bases de la programmation orientée objet, qui s'articule autour de langages utilisant des «classes» pour décrire des «objets». Un objet est une donnée qui peut représenter beaucoup de choses. Cela peut être un objet littéral dans un monde de jeu comme un ressort, ou quelque chose de plus abstrait, comme un manager qui gère le score du joueur.

Une seule classe peut créer plusieurs objets. Donc, vous pouvez écrire une classe «ennemie», mais être capable de générer un niveau complet rempli de méchants. C'est l'un des gros avantages de l'utilisation de la programmation orientée objet. Sinon, le seul moyen de gérer le comportement d’une multitude d’ennemis serait de recourir à de nombreuses méthodes individuelles, chacune contenant des instructions indiquant comment le méchant devrait se comporter dans des circonstances différentes.


Si cela reste un peu difficile à comprendre, tout ce que vous devez savoir, c'est que les objets ont des propriétés et des comportements. C'est comme de vrais objets. Par exemple, un lapin a des propriétés telles que la taille, la couleur et le nom; et il a des comportements, comme sauter, s'asseoir et manger. Les propriétés sont essentiellement des variables et les comportements sont des méthodes.

Le programme que nous avons construit dans la dernière leçon est également un exemple de classe. L’objet que nous décrivons ici est une sorte de système de contrôle de mot de passe. La propriété dont il dispose est la chaîne UserName et son comportement est NewMethod (vérification du nom de l'utilisateur et accueil de celui-ci).

Si c'estencore un peu déroutant, la seule façon de se faire comprendre est de créer une nouvelle classe ou deux nous-mêmes!

Créer une nouvelle classe

Si vous allez apprendre le C #, vous devez savoir comment créer de nouveaux cours. Heureusement, c'est très facile. Cliquez simplement sur l'élément de menu Projet, puis sélectionnez «+ Ajouter une classe».

Choisissez "C #" et appelez-le "Lapin". Nous allons utiliser cette classe pour créer des lapins conceptuels. Vous verrez ce que je veux dire dans un instant.

Si vous vérifiez votre Explorateur de solutions à droite, vous verrez qu'un nouveau fichier appelé Rabbit.cs a été créé juste en dessous de Program.cs. Bien fait - c’est l’une des choses les plus cruciales à savoir si vous voulez apprendre le C # pour Android!

Le nouveau fichier Rabbit.cs contient une partie du même code «passe-partout» qu'avant. Il appartient toujours au même espace de noms et possède une classe portant le même nom que le fichier.

espace de noms ConsoleApp2 {class Rabbit {}}

Nous allons maintenant donner à notre lapin des propriétés avec ce que nous appelons un «constructeur».

Un constructeur est une méthode dans une classe qui initialise l'objet, ce qui nous permet de définir ses propriétés lors de sa création. Dans ce cas, voici ce que nous allons dire:

espace de noms ConsoleApp2 {class Rabbit {chaîne publique RabbitName; chaîne publique RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (nom de chaîne, couleur de chaîne, int age, int weight) {RabbitName = name; RabbitColor = couleur; RabbitAge = age; Poids du lapin = poids; }}}

Cela nous permet de créer un nouveau lapin d'une classe différente et de définir ses propriétés comme nous le faisons:

Lapin Lapin1 = nouveau Lapin («Jeff», «brun», 1, 1);

Maintenant, je me rends compte rétrospectivement que le poids aurait probablement dû être un flottant ou un double pour tenir compte des nombres décimaux, mais vous avez l’idée. Nous allons arrondir notre lapin au nombre entier le plus proche.

Vous verrez que lorsque vous écrivez votre lapin, vous serez invité à passer les arguments corrects. De cette façon, votre classe est presque devenue une partie du code.

Croyez-le ou non, ce code a créé un lapin! Vous ne pouvez pas voir votre lapin car nous n’avons aucun graphique, mais il est là.

Et pour le prouver, vous pouvez maintenant utiliser cette ligne:

Console.WriteLine (Rabbit1.RabbitName);

Cela vous indiquera alors le nom du lapin que vous venez de créer!

Nous pouvons également augmenter le poids de notre lapin, comme suit:

Rabbit1.RabbitWeight ++; Console.WriteLine (Rabbit1.RabbitName + "pèse" + Rabbit1.RabbitWeight + "kg");

Notez ici que l'ajout de «++» à la fin de quelque chose augmentera progressivement sa valeur de un (Vous pouvez également écrire «RabbitWeight = RabbitWeight + 1»).

Parce que notre classe peut faire autant de lapins que nous le souhaitons, nous pouvons créer beaucoup de lapins différents, chacun avec ses propres propriétés.

Ajout de comportements

Nous pourrions alors aussi choisir de donner à notre lapin une sorte de comportement. Dans ce cas, laissez-les manger.

Pour ce faire, nous créerions une méthode publique appelée «manger», ce qui produirait un son de manger tout en augmentant progressivement le poids du lapin:

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

N'oubliez pas que «public» signifie accessible de l'extérieur de la classe et «void» signifie que la méthode ne renvoie aucune donnée.

Ensuite, à l'intérieur de Program.cs, nous pourrons appeler cette méthode, ce qui fera manger et grossir le lapin de notre choix:

Console.WriteLine (Rabbit1.RabbitName + "pèse" + Rabbit1.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "pèse" + Rabbit1.RabbitWeight + "kg");

Cela incitera Jeff à manger trois fois, puis nous l'entendrons et nous pourrons voir qu'il est devenu plus gros! Si nous avions un autre lapin sur la scène, ils pourraient aussi manger!

Console.WriteLine (Rabbit1.RabbitName + "pèse" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "pèse" + Rabbit2.RabbitWeight + "kg"); Rabbit1.Eat (); Rabbit1.Eat (); Rabbit2.Eat (); Rabbit2.Eat (); Rabbit1.Eat (); Console.WriteLine (Rabbit1.RabbitName + "pèse" + Rabbit1.RabbitWeight + "kg"); Console.WriteLine (Rabbit2.RabbitName + "pèse" + Rabbit2.RabbitWeight + "kg");

Comme des lapins

Ce n’est pas un moyen particulièrement élégant de gérer beaucoup d’objets, car nous devons écrire les commandes pour chaque lapin manuellement et nous ne pouvons pas augmenter de manière dynamique le nombre de lapins aussi loin que nous le voulons. Nous ne voulons pas seulement apprendre le C # - nous voulons apprendre à écrire du code C # épuré!

C'est pourquoi nous pourrions utiliser une liste. Une liste est une collection. variable elle-même qui contient essentiellement des références à d'autres variables. Dans ce cas, nous pourrions dresser une liste de lapins et la bonne nouvelle est qu’il est très facile à comprendre:

liste RabbitList = nouvelle liste(); RabbitList.Add (new Rabbit ("Jeff", "brun", 1, 1)); RabbitList.Add (new Rabbit ("Sam", "blanc", 1, 2));

Cela crée le nouveau lapin comme avant, mais ajoute simultanément le lapin à la liste. De même, nous pourrions dire ceci:

Lapin Lapin3 = nouveau Lapin ("Jonny", "orange", 1, 1); RabbitList.Add (RabbitList3);

Dans les deux cas, un objet a été créé et ajouté à la liste.

Nous pouvons également renvoyer facilement et élégamment les informations de notre liste de lapins de cette façon:

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

Comme vous le savez peut-être, «foreach» signifie que vous répétez une étape une fois pour chaque élément de la liste. Vous pouvez également récupérer des informations de votre liste comme ceci:

RabbitList.Eat ();

Ici, "1" est l'index, ce qui signifie que vous faites référence aux informations stockées à la position un. En fait, c’est en réalité la seconde lapin vous avez ajouté cependant: parce que les listes dans la programmation commencent toujours à 0.

Fibonacci

Au cas où vous ne l'auriez pas encore deviné, nous allons maintenant utiliser toutes ces informations pour créer une séquence de Fibonacci. Après tout, si vous apprenez le C # pour Android, vous devriez être capable de faire quelque chose d’intéressant avec toute cette théorie!

Dans la séquence de Fibonacci, des lapins sont enfermés dans une pièce et laissés à la reproduction. Ils peuvent se reproduire après un mois, date à laquelle ils sont sexuellement matures (je ne peux pas confirmer si cela correspond à la biologie de Rabbit). Si chaque couple de lapins peut produire une fois par mois à partir de cette date et donner naissance à deux enfants, voici à quoi ressemble la séquence:

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

Comme par magie, chaque nombre dans la séquence est la valeur des deux nombres précédents ajoutés ensemble. Selon la science, c'est un gros problème.

La chose intéressante est, nous pouvons reproduire cela.

Premièrement, nous devons introduire un nouveau concept: la boucle. Cela répète simplement le même code encore et encore jusqu'à ce qu'une condition soit remplie. La boucle «for» nous permet de le faire en créant une variable, en définissant les conditions que nous souhaitons remplir, puis en l'exploitant - toutes définies entre parenthèses:

pour (int mois = 0; mois <100; mois ++) {// Faire quelque chose}

Nous créons donc un nombre entier appelé mois et le bouclons jusqu’à ce qu’il soit égal à 100. Ensuite, nous augmentons le nombre de mois de un.

Vous voulez voir comment cela peut devenir une séquence de Fibonacci? Voir:

espace de noms ConsoleApp2 {class Programme {static void Main (string args) {List RabbitList = nouvelle liste(); RabbitList.Add (new Rabbit ("Jeff", "brun", 0, 1)); RabbitList.Add (new Rabbit ("Sam", "blanc", 0, 1)); pour (int mois = 0; mois <10; mois ++) {int firstRabbit = 0; int timesToReproduce = 0; foreach (var Rabbit dans RabbitList) {Console.Write ("R"); if (Rabbit.RabbitAge> 0) {if (firstRabbit == 0) {firstRabbit = 1; } else {firstRabbit = 0; timesToReproduce ++; }} Rabbit.RabbitAge ++; } pour (int i = 0; i <timesToReproduce; i ++) {RabbitList.Add (new Rabbit ("NewBabyRabbit", "marron", 0, 1)); RabbitList.Add (new Rabbit ("NewBabyRabbit", "marron", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Il y a" + RabbitList.Count / 2 + "paires de lapins!"); Console.WriteLine (""); } Console.WriteLine ("Tout est fait!"); Console.ReadKey (); }}}

Ok, c'était plus dur que je pensais!

Je ne vais pas passer à travers tout cela, mais en utilisant ce que vous avez déjà appris, vous devriez être en mesure de procéder à une ingénierie inverse.

Il y a certainement des façons plus élégantes de faire cela - je ne suis pas mathématicien. Cependant, je pense que c’est un exercice assez amusant, et une fois que vous pouvez le faire, vous êtes prêt pour le grand moment.

Au fait, j’adorerais voir d’autres approches!

Où allons-nous à partir d'ici? Comment apprendre le C # pour Android

Avec toutes ces connaissances à votre actif, vous êtes prêt à commencer par de plus grandes choses. En particulier, vous êtes prêt à vous lancer dans la programmation Android avec C # dans Xamarin ou Unity.

Cela est différent car vous utiliserez des classes fournies par Google, Microsoft et Unity. Lorsque vous écrivez quelque chose comme «RigidBody2D.velocity», vous accédez à une propriété depuis une classe. appelé RigidBody2D. Cela fonctionne de la même manière, la seule différence est que vous ne pouvez pas voir RigidBody2D car vous ne l’avez pas construit vous-même.

Avec ce C # à votre portée, vous devriez être prêt à vous lancer dans l’une de ces options et à prendre une longueur d’avance pour comprendre ce qui se passe:

  • Comment faire une application Android avec Xamarin
  • Construisez votre tout premier jeu Android en 7 minutes avec Unity

Dans une prochaine leçon, nous verrons également comment vous pouvez faire demi-tour et l'utiliser pour créer des applications Windows à la place!

Bien qu'il y ait quelque changement dan Android Q par rapport à Android 9 Pie, l'écran de verrouillage et à peu prè le même. Cependant, dan Android Q, un enemble de co...

Encore une foi, pour participer au concour, aurez-vou que votre photo et enregitrée ur un martphone optimié par napdragon (même le ancienne plate-forme mobile napdragon ont éligibl...

Publications Populaires