Lernen Sie C # für Android Teil 2: Klassen und Schleifen

Autor: John Stephens
Erstelldatum: 24 Januar 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Lernen Sie C # für Android Teil 2: Klassen und Schleifen - Apps
Lernen Sie C # für Android Teil 2: Klassen und Schleifen - Apps

Inhalt


In Teil 1 dieser Android-Lernserie zum Erlernen von C # haben wir uns mit den absoluten Grundlagen der C # -Programmierung befasst. Wir haben Methoden (Codegruppen, die bestimmte Aufgaben ausführen), einige grundlegende Syntaxarten (z. B. die Notwendigkeit von Semikolons), Variablen (Container, in denen Daten gespeichert sind) und „if-Anweisungen“ für die Ablaufsteuerung (Verzweigungscode, der von den Werten abhängt) behandelt von Variablen). Wir haben auch gesehen, wie Variablen wie Strings als Argumente zwischen Methoden übergeben werden.

Sie sollten sich das noch einmal ansehen, wenn Sie es noch nicht gelesen haben.

Zu diesem Zeitpunkt sollten Sie in der Lage sein, einige grundlegende Konsolenanwendungen zu erstellen, z. B. Tests, Anwendungen zum Speichern von Daten oder Taschenrechner.

In Teil 2 werden wir ein wenig ehrgeiziger werden, einige Grundlagen behandeln - wie z. B. Schleifen - und lernen, wie man Klassen erstellt und mit ihnen interagiert. Das bedeutet, dass wir einen ersten Eindruck von der Android-Entwicklung bekommen und sehen können, wie wir diese Lücke schließen können. Lesen Sie weiter, wenn Sie wirklich C # lernen möchten!


Grundlegendes zu Klassen und objektorientierter Programmierung

In Teil 1 haben wir kurz die Grundlagen der objektorientierten Programmierung erläutert, bei der es um Sprachen geht, wobei „Klassen“ zur Beschreibung von „Objekten“ verwendet werden. Ein Objekt ist ein Datenelement, das viele Dinge darstellen kann. Es könnte ein buchstäbliches Objekt in einer Spielwelt sein, wie ein Frühling, oder es könnte etwas abstrakteres sein, wie ein Manager, der die Punktzahl des Spielers verwaltet.

Eine einzelne Klasse kann mehrere Objekte erstellen. Sie schreiben also vielleicht eine "Feind" -Klasse, können aber ein ganzes Level voller Bösewichte generieren. Dies ist einer der großen Vorteile der objektorientierten Programmierung. Andernfalls wäre die einzige Möglichkeit, mit dem Verhalten einer Vielzahl von Feinden umzugehen, die Verwendung zahlreicher individueller Methoden, von denen jede Anweisungen enthält, wie sich der Bösewicht unter verschiedenen Umständen verhalten sollte.


Wenn es immer noch etwas schwierig ist, sich zurechtzufinden, müssen Sie nur wissen, dass Objekte Eigenschaften und Verhaltensweisen haben. Das ist wie bei echten Objekten. Zum Beispiel hat ein Kaninchen Eigenschaften wie Größe, Farbe und Name; und es hat Verhaltensweisen wie Springen, Sitzen und Essen. Im Wesentlichen sind Eigenschaften Variablen und Verhalten Methoden.

Das Programm, das wir in der letzten Lektion erstellt haben, ist auch ein Beispiel für eine Klasse. Das "Objekt", das wir hier beschreiben, ist eine Art Passwortkontrollsystem. Die Eigenschaft, die es hat, ist die Zeichenfolge UserName, und das Verhalten, das es hat, ist NewMethod (Überprüfen des Namens des Benutzers und Begrüßen dieser).

Wenn das so istimmer noch Ein bisschen verwirrend, der einzige Weg, unsere Köpfe herumzukriegen, ist, selbst eine oder zwei neue Klassen zu erschaffen!

Eine neue Klasse erstellen

Wenn Sie C # lernen möchten, müssen Sie wissen, wie Sie neue Klassen erstellen. Zum Glück ist das sehr einfach. Klicken Sie einfach auf den Menüpunkt Projekt und wählen Sie dann "+ Klasse hinzufügen".

Wählen Sie "C #" und nennen Sie es "Rabbit". Wir werden diese Klasse verwenden, um konzeptionelle Kaninchen zu erstellen. Du wirst gleich sehen, was ich meine.

Wenn Sie rechts in Ihrem Projektmappen-Explorer nachsehen, sehen Sie, dass eine neue Datei mit dem Namen Rabbit.cs direkt unter Program.cs erstellt wurde. Gut gemacht - das ist eines der wichtigsten Dinge, die Sie wissen müssen, wenn Sie C # für Android lernen möchten!

Die neue Datei Rabbit.cs enthält denselben Code wie zuvor. Es gehört immer noch zum selben Namespace und hat eine Klasse mit demselben Namen wie die Datei.

Namespace ConsoleApp2 {class Rabbit {}}

Jetzt geben wir unserem Kaninchen einige Eigenschaften, die wir als "Konstruktor" bezeichnen.

Ein Konstruktor ist eine Methode in einer Klasse, die das Objekt initialisiert, sodass wir seine Eigenschaften definieren können, wenn wir es zum ersten Mal erstellen. In diesem Fall sagen wir Folgendes:

Namespace ConsoleApp2 {class Rabbit {public string RabbitName; öffentlicher String RabbitColor; public int RabbitAge; public int RabbitWeight; public Rabbit (String name, String color, int age, int weight) {RabbitName = name; RabbitColor = Farbe; RabbitAge = Alter; Kaninchengewicht = Gewicht; }}}

Auf diese Weise können wir ein neues Kaninchen aus einer anderen Klasse erstellen und seine Eigenschaften wie folgt definieren:

Rabbit Rabbit1 = neues Kaninchen ("Jeff", "brown", 1, 1);

Jetzt ist mir im Nachhinein klar, dass das Gewicht wahrscheinlich ein Float oder ein Double gewesen sein sollte, um Dezimalstellen zu berücksichtigen, aber Sie haben die Idee. Wir werden unser Kaninchen auf die nächste ganze Zahl runden.

Wenn Sie Ihr Kaninchen ausschreiben, werden Sie aufgefordert, die richtigen Argumente zu übergeben. Auf diese Weise ist Ihre Klasse fast ein Teil des Codes geworden.

Ob Sie es glauben oder nicht, dieser Code hat ein Kaninchen geschaffen! Sie können Ihr Kaninchen nicht sehen, da wir keine Grafiken haben, aber es ist da.

Und um es zu beweisen, können Sie jetzt diese Zeile verwenden:

Console.WriteLine (Rabbit1.RabbitName);

Daraufhin erfahren Sie den Namen des Kaninchens, das Sie gerade erstellt haben!

Wir können das Gewicht unseres Kaninchens ebenfalls wie folgt erhöhen:

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

Beachten Sie hier, dass das Hinzufügen von „++“ am Ende eines Elements dessen Wert schrittweise um eins erhöht (Sie können auch „RabbitWeight = RabbitWeight + 1“ schreiben).

Da unsere Klasse so viele Kaninchen herstellen kann, wie wir möchten, können wir viele verschiedene Kaninchen mit jeweils eigenen Eigenschaften herstellen.

Verhalten hinzufügen

Wir könnten uns dann auch dafür entscheiden, unserem Kaninchen ein Verhalten zu geben. In diesem Fall lassen wir sie essen.

Zu diesem Zweck würden wir eine öffentliche Methode namens "Eat" erstellen, die ein Fressgeräusch erzeugt und gleichzeitig das Gewicht des Kaninchens schrittweise erhöht:

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

Denken Sie daran, "public" bedeutet, dass von außerhalb der Klasse zugegriffen werden kann, und "void" bedeutet, dass die Methode keine Daten zurückgibt.

Dann können wir in Program.cs diese Methode aufrufen und das Kaninchen unserer Wahl fressen und größer werden lassen:

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

Das wird Jeff dazu bringen, dreimal zu essen, dann werden wir es hören und sehen können, dass er größer geworden ist! Wenn wir ein anderes Kaninchen auf der Bühne hätten, könnten sie auch essen!

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

Daran mögen Kaninchen

Dies ist keine besonders elegante Art, mit vielen Objekten umzugehen, da wir die Befehle für jedes Kaninchen manuell schreiben müssen und die Anzahl der Kaninchen nicht dynamisch erhöhen können, so weit wir wollen. Wir wollen nicht nur C # lernen - wir wollen lernen, wie man sauberen C # -Code schreibt!

Aus diesem Grund könnten wir eine Liste verwenden. Eine Liste ist eine Sammlung; Variable selbst, die im Wesentlichen Verweise auf andere Variablen enthält. In diesem Fall könnten wir eine Liste von Kaninchen erstellen, und die gute Nachricht ist, dass dies sehr einfach zu verstehen ist:

Liste RabbitList = neue Liste(); RabbitList.Add (neues Kaninchen ("Jeff", "brown", 1, 1)); RabbitList.Add (neues Kaninchen ("Sam", "white", 1, 2));

Dies erstellt das neue Kaninchen wie zuvor, fügt es jedoch gleichzeitig der Liste hinzu. Genauso könnten wir das sagen:

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

In beiden Fällen wurde ein Objekt erstellt und der Liste hinzugefügt.

Auf diese Weise können wir auch bequem und elegant Informationen aus unserer Kaninchenliste zurückgeben:

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

Wie Sie vielleicht herausfinden können, bedeutet "foreach", dass Sie einen Schritt einmal für jedes Element in der Liste wiederholen. Sie können Informationen auch wie folgt aus Ihrer Liste abrufen:

RabbitList.Eat ();

Hier ist "1" der Index, was bedeutet, dass Sie sich auf die an Position 1 gespeicherten Informationen beziehen. Wie es passiert, ist das eigentlich das zweite Kaninchen, das Sie hinzugefügt haben: weil Listen in der Programmierung immer bei 0 beginnen.

Fibonacci

Falls Sie es noch nicht erraten haben, werden wir jetzt alle diese Informationen verwenden, um eine Fibonacci-Sequenz zu erstellen. Wenn Sie C # für Android lernen, sollten Sie in der Lage sein, mit all dieser Theorie tatsächlich etwas Interessantes zu machen!

In der Fibonacci-Sequenz werden Kaninchen in einem Raum eingeschlossen und der Zucht überlassen. Sie können sich nach einem Monat fortpflanzen und sind dann geschlechtsreif (ich kann nicht bestätigen, ob dies die richtige Kaninchenbiologie ist). Wenn jedes Kaninchenpaar ab diesem Zeitpunkt einmal im Monat zwei Nachkommen zur Welt bringen kann, sieht die Sequenz folgendermaßen aus:

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

Magischerweise ist jede Zahl in der Sequenz der Wert der beiden vorhergehenden Zahlen, die zusammenaddiert werden. Laut Wissenschaft ist das eine große Sache.

Das Coole ist, wir können das wiederholen.

Zunächst müssen wir ein neues Konzept einführen: die Schleife. Dies wiederholt einfach den gleichen Code immer und immer wieder, bis eine Bedingung erfüllt ist. Mit der for-Schleife können wir dazu eine Variable erstellen, die Bedingungen festlegen, die wir erfüllen möchten, und sie dann bearbeiten - alles in eckigen Klammern definiert:

for (int months = 0; months <100; months ++) {// Mach etwas}

Wir erstellen also eine Ganzzahl mit dem Namen months und wiederholen die Schleife, bis sie 100 entspricht. Dann erhöhen wir die Anzahl der Monate um eins.

Möchten Sie sehen, wie dies zu einer Fibonacci-Sequenz werden kann? Erblicken:

Namespace ConsoleApp2 {class Program {static void Main (string args) {List RabbitList = neue Liste(); RabbitList.Add (neues Kaninchen ("Jeff", "brown", 0, 1)); RabbitList.Add (neues Kaninchen ("Sam", "white", 0, 1)); für (int months = 0; months <10; months ++) {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 (neues Kaninchen ("NewBabyRabbit", "brown", 0, 1)); RabbitList.Add (neues Kaninchen ("NewBabyRabbit", "brown", 0, 1)); Console.Write ("r"); Console.Write ("r"); } Console.WriteLine ("--- Es gibt" + RabbitList.Count / 2 + "Kaninchenpaare!"); Console.WriteLine (""); } Console.WriteLine ("Alles erledigt!"); Console.ReadKey (); }}}

Okay, das war schwieriger als ich dachte!

Ich werde das alles nicht durchgehen, aber wenn Sie das Gelernte verwenden, sollten Sie in der Lage sein, es rückgängig zu machen.

Dafür gibt es definitiv elegantere Möglichkeiten - ich bin kein Mathematiker. Ich denke jedoch, dass es eine ziemlich unterhaltsame Übung ist, und wenn Sie sie machen können, sind Sie bereit für die große Zeit.

Ich würde übrigens gerne andere Ansätze sehen!

Was machen wir jetzt? So lernen Sie C # für Android

Mit all diesem Wissen sind Sie bereit, größere Dinge in Angriff zu nehmen. Insbesondere sind Sie bereit, sich mit C # in Xamarin oder Unity in die Android-Programmierung einzuarbeiten.

Dies ist anders, da Sie Klassen verwenden, die von Google, Microsoft und Unity bereitgestellt werden. Wenn Sie etwas wie "RigidBody2D.velocity" schreiben, greifen Sie auf eine Eigenschaft einer Klasse zu namens RigidBody2D. Dies funktioniert genauso, der einzige Unterschied ist, dass Sie RigidBody2D nicht sehen können, weil Sie es nicht selbst erstellt haben.

Mit diesem C # unter dem Gürtel sollten Sie bereit sein, in eine dieser Optionen zu springen und einen großen Vorsprung zu haben, wenn es darum geht, zu verstehen, was vor sich geht:

  • Wie erstelle ich eine Android App mit Xamarin?
  • Erstelle dein erstes Android-Spiel in 7 Minuten mit Unity

In einer bevorstehenden Lektion werden wir auch untersuchen, wie Sie eine Kehrtwende machen und stattdessen Windows-Apps erstellen können!

La un ehrlich ein, prachaitenten ind cool. Mit Alexa, iri oder Cortana zu prechen, it wahrcheinlich da Bete, wa die meiten von un von einem eigenen Roboterbutler erwarten. Aber haben ie jemal übe...

Wach auf chlafmütze! Hat du die Z bekommen, die du braucht? Wenn nicht, könnte e an einer zugrunde liegenden Bedingung liegen. Gehen ie dem auf den Grund mit Go2leep, dem kleinten chlaftool ...

Die Wahl Des Herausgebers