GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gewusst wie:Einführung in die Programmierung – Objektorientierte Programmierung

Anleitungsserie

Dies ist Teil 5 einer 5-teiligen Serie zur Einführung in die Programmierung

  1. Einführung in die Programmierung:Erste Schritte
  2. Einführung in die Programmierung:Ihr erstes Programm
  3. Einführung in die Programmierung:Variablen, Typen und Datenbearbeitung
  4. Einführung in die Programmierung:Flusskontrolle
  5. Einführung in die Programmierung:Objektorientierte Programmierung

Rückkehr für die letzte Lektion

Schön, dich wiederzusehen! Ich freue mich, dass Sie für diesen abschließenden Artikel in dieser Serie zur Einführung in die Programmierung bei Atlantic.NET zurückgekommen sind. Sie haben bisher viel gelernt, und dieser Artikel wird keine Ausnahme sein.

In diesem Artikel werden wir die Objektorientierung untersuchen, eine Programmiermethode, bei der Sie Objekte erstellen, die die Dinge darstellen, die Sie modellieren möchten, und diese Objekte dann verschiedene Aufgaben ausführen lassen.

Willst du das Beste wissen? Du hast es bereits getan. Jetzt müssen Sie nur noch verstehen, was Sie getan haben, und Sie können loslegen.

.

Zufällige Objekte

Erinnern Sie sich zunächst daran, dass ich Ihnen im vorherigen Artikel zwei Codezeilen gegeben habe, die ich noch nicht erklärt habe. Hier noch einmal die beiden Zeilen:

Random random = new Random(); // Object orientation stuff
int answer = random.Next(10) + 1; // Give me a random number less than 10 and add one

Die erste Zeile ist uns an dieser Stelle die ungewohnteste. Wir beginnen mit dem Schlüsselwort new, also new . Was neu ist ein Objekt instanziieren. Instanziieren bedeutet, eine Instanz von etwas zu erstellen, und in diesem Fall erstellen wir eine Instanz einer Klasse namens Random() .

Diese erste Zeile erstellt also ein neues Objekt aus Random() Klasse und weist sie dann einer Variablen vom Typ Random zu und dessen Name zufällig ist . Das ist eine Menge Zufälligkeit für einen Computer, der überhaupt nicht zufällig ist! Diese Aufschlüsselung kann hilfreich sein, wenn Sie diese Erklärung verwirrend finden.

Zuerst haben Sie den Variablentyp. Bisher haben wir int verwendet und string Typen, also führen wir hier einen neuen Typ – oder eigentlich einen Klassentyp – namens Random ein .
Zweitens haben wir den Variablennamen. Bei der Arbeit mit Variablen in früheren Artikeln haben wir Variablennamen wie input verwendet und Wert . Beachten Sie, dass wir in diesem Fall den Variablennamen random verwenden (Wir haben es in Kleinbuchstaben geschrieben, um Ihnen bei der Unterscheidung zu helfen), obwohl es fast alles sein könnte, was Sie möchten, wie z. B. Nummer oder hey_there_human_can_you_get_me_a_cookie_please_kthxbye .
Drittens – und das ist buchstäblich der neue Teil – weisen wir der Variablen einen Wert zu. In früheren Artikeln haben wir dies auf die Ausgabe von Console.ReadLine() gesetzt Methode oder ein fester Wert wie 8 oder „Hallo Welt!“. Jetzt verwenden wir einen etwas anderen Ansatz, weil wir mit new ein neues Objekt erstellen Schlüsselwort.

.

Bevor wir zur nächsten Zeile kommen, lassen Sie uns einen kleinen Rückblick machen.
.

Ein Überblick über Klassen, Objekte, Eigenschaften und Methoden

In der Objektorientierung sind die beiden wichtigsten Konzepte Klassen und Objekte. Sie haben dies kurz im zweiten Artikel dieser Serie gelernt, als ich erklärte, dass Sie sich Klassen als Vorlagen und Objekte als das vorstellen können, was Sie aus diesen Vorlagen erstellen, z. B. einen Kuchen (Objekt) aus einem Rezept (Klasse).

Eine Klasse, die die Vorlage für Objekte ist, definiert durch Eigenschaften und Methoden, was die Objekte sein werden. Wenn Sie ein Objekt mit new erstellen Schlüsselwort erhalten Sie ein einzigartiges Objekt, das über Eigenschaften und Methoden verfügt, die von der Klasse definiert werden.

Beispielsweise möchten Sie möglicherweise einen neuen Kuchen aus einem bestimmten Rezept erstellen. Auf diese Weise können Sie sagen, dass Sie das Rezept instanziieren und ein Kuchenobjekt erhalten. Der Kuchen unterscheidet sich von allen anderen Kuchen, die nach diesem Rezept hergestellt wurden, sodass Änderungen, die Sie an einem Kuchen vornehmen, keine Auswirkungen auf andere Kuchen haben. Zuckerguss auf einen Kuchen zu geben, bringt nicht Zuckerguss auf alle Kuchen.

Eigenschaften sind die Werte, die definieren, was ein Objekt ist. Es ist möglicherweise einfacher, wenn Sie sich eine Eigenschaft als eine Art Variable vorstellen, die an ein Objekt angehängt ist. Bei einem Kuchenobjekt kann beispielsweise die Art der Glasur oder Füllung eine Eigenschaft sein.

Methoden definieren, was ein Objekt tun kann. Zum Beispiel kann ein Auto fahren. Sie müssen nicht wirklich wissen, wie ein Motor funktioniert; Sie können dem Auto einfach sagen, dass es starten soll, und das Auto kümmert sich darum, was es tun muss, um den Motor hochzudrehen und Sie auf Ihren fröhlichen Weg zu bringen. Eines der schönen Dinge an der Objektorientierung ist, dass wir uns nicht wirklich um die zugrunde liegende Funktionsweise der Methode kümmern, noch müssen wir uns darum kümmern. Das ist das Konzept der Abstraktion, das wir auch schon früher besprochen haben.

Da wir bereits über Kuchen gesprochen haben, können wir uns Methoden für den Kuchen wie AddFilling vorstellen und WrapInPaper das würde zum Beispiel die Fülleigenschaft hinzufügen oder anpassen oder einen Kuchen als in Papier eingewickelt kennzeichnen.

.

Dass es sich um Objekte und Klassen handelt, erkennen Sie oft an Punkten oder „Punkten“. In der Ausgabe unseres Programms verwenden wir beispielsweise Console.ReadLine() (gesprochen als „Konsolenpunkt ReadLine“). Der erste Teil vor dem Punkt bestimmt die Klasse oder das Objekt und der zweite Teil nach dem Punkt bestimmt die Eigenschaften oder Methoden, die wir aufrufen möchten.

Wie erkennt man den Unterschied zwischen Eigenschaften und Methoden? Meistens haben Methoden Klammern, Eigenschaften jedoch nicht. Daran können Sie zum Beispiel erkennen, dass der Befehl Console.ReadLine() fragt die Konsole Klasse oder Objekt zum Aufrufen von ReadLine() -Methode, da auf „ReadLine“ Klammern folgen.

Bei Eigenschaften werden Sie feststellen, dass Sie mit ihnen auf die gleiche Weise interagieren wie mit normalen Variablen. Sie können mathematische Operationen durchführen, Werte zuweisen, Werte lesen usw., genau wie mit int und string Variablen. Wenn Sie unseren Spielcode ein wenig ändern möchten, können Sie die Eigenschaften für die Vorder- und Hintergrundfarben der Konsole wie folgt festlegen:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;

Das Hinzufügen dieser Anweisungen bewirkt, dass der Text bei der nächsten Ausgabe im Programm weiß auf blauem Hintergrund geschrieben wird, wie in Abbildung 1 unten zu sehen ist.

Abbildung 1:Weiß auf blauem Konsolentext

Sie hätten vielleicht erwartet, dass das gesamte Fenster blau ist, oder? Wir bekommen nur die Ausgabezeilen blau, weil wir der Konsole nicht gesagt haben, dass sie einen bereits vorhandenen schwarzen Hintergrund löschen soll. Wir können diese Änderung erreichen, indem wir Clear() aufrufen Methode auf der Konsole:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();

Mit dieser Hinzufügung erhalten wir etwas wie in Abbildung 2 unten.

Abbildung 2:Blaues Konsolenfenster

In diesem Beispiel verwenden Sie die Objektorientierung zuerst, um Eigenschaften auf der Konsole Werte zuzuweisen und dann die Konsole zu bitten, etwas zu tun. Dieses Muster ist in der Objektorientierung üblich.

Es gibt noch eine Sache in Bezug auf Methoden, die Sie lernen müssen, und das ist die Verwendung von Parametern . Glücklicherweise haben Sie beim Schreiben von Text in die Konsole mit WriteLine() bereits einen Parameter verwendet Methode.

Mit Parametern können Sie konfigurieren, wie eine Methode ausgeführt werden soll. Wenn Sie beispielsweise möchten, dass die Konsole etwas schreibt, müssen Sie ihr sagen, was sie schreiben soll. Setzen Sie dazu einen oder mehrere Parameter in die Klammern nach dem Methodennamen.

Console.WriteLine(“this is a parameter”);

Bisher haben wir nur festen Text verwendet, um etwas auszugeben, aber wir können auch Variablen, Eigenschaften oder sogar ganze Objekte an Methoden übergeben. Zum Beispiel WriteLine() Methode, kann einen int empfangen Variable, die an die Konsole übergeben werden soll, zeigt den Wert dieser Variablen an.

int i = 99;
Console.WriteLine(i);

Was genau Sie mit den verschiedenen Klassen und Objekten machen können, ist sehr unterschiedlich. Weitere Informationen zu den Fähigkeiten verschiedener Objekte finden Sie in der API-Dokumentation. Einige Entwicklungstools, wie z. B. Visual Studio, können Ihnen auch enorm helfen, indem sie Werte basierend auf den Anforderungen der Methoden vorschlagen oder verfügbare Eigenschaften und Methoden vorschlagen, wenn Sie mit der Eingabe eines Objekt- oder Klassennamens beginnen.

In Visual Studio können Sie beispielsweise alle Eigenschaften der Konsole anzeigen, indem Sie Console eingeben und „Punkt“. Warten Sie den Bruchteil einer Sekunde, und Sie sollten eine Liste mit Eigenschaften und Methoden und sogar eine Dokumentation dazu sehen, was die verschiedenen Eigenschaften und Methoden tun, wie in Abbildung 3 unten gezeigt.

Abbildung 3:Intellisense-Eingabeaufforderung von Visual Studio

In Visual Studio heißt dieses Feature IntelliSense, und wenn Sie Ihre Entwicklung in Visual Studio durchführen, ist es eines der hilfreichsten Features, die Sie verwenden können. Andere Entwicklungstools bieten ebenfalls ähnliche Funktionen.

Schließlich gibt es noch einen speziellen Methodentyp in der Objektorientierung, der als Konstruktor bezeichnet wird . Ein Konstruktor ist eine Methode, die aufgerufen wird, wenn Sie ein Objekt mit new erstellen Stichwort. Mit dieser Methode können Sie Aufgaben wie das Initialisieren von Werten für das Objekt ausführen und ist immer die erste Methode, die während einer Objektlebensdauer aufgerufen wird.

.

Zurück zu unserem Ratespiel

Wenn wir Random random =new Random(); schreiben das Random() Teil ist der Konstruktor. Wie andere Methoden kann es Parameter akzeptieren, die die Methode dann verwenden kann, um die Eigenschaften des Objekts zu initialisieren.

Jetzt können wir es zurück in die zweite Zeile bringen, die wir hinzugefügt haben, um die zufällige Ganzzahl für unser Spiel zu erstellen.

int answer = random.Next(10) + 1;

Sie haben vielleicht bemerkt, dass, als Sie mit der Texteingabe begonnen haben (es sei denn, Sie haben ihn einfach kopiert, was auch in Ordnung ist; sehen Sie sich einfach Abbildung 4 an), IntelliSense von Visual Studio aufgetaucht ist und Ihnen mitgeteilt hat, was Next() Methode funktioniert, wie unten gezeigt.

Abbildung 4. Random.Next()

Dieser Hinweis sagt Ihnen, dass die Random.Next() Methode benötigt einen Parameter vom Typ int mit einem Maximalwert von „maxValue“. Beachten Sie, dass der dort angegebene Name kein Typ, sondern eher ein Deskriptor ist – Sie müssen Ihre Integer-Werte nicht „maxValue“ nennen.

Als nächstes lernen wir das, wenn wir diese Methode mit einem int aufrufen -Parameter gibt die Methode eine nichtnegative Zufallszahl an uns zurück. In unserem Spiel weisen wir das einem Variablennamen von Antwort zu damit wir später darauf zurückgreifen können.

Die Dokumentation besagt jedoch, dass der zurückgegebene Wert kleiner als ist das Maximum. Wenn wir also 10 übergeben, erhalten wir einen Wert, der kleiner ist, also kann es nur bis zu 9 sein. Außerdem die Zahl, die von Next() zurückgegeben wird ist nicht negativ, das heißt, es kann 0 sein, und wir brauchen eine Zahl zwischen 1 und 10, einschließlich.

Mit anderen Worten, was wir bekommen, wenn wir random.Next(10) aufrufen ist eine beliebige Zahl zwischen 0 und 9. Das Hinzufügen von 1 zu dieser Zahl bedeutet, dass daraus eine Zahl zwischen 1 und 10 wird, bevor wir sie der Antwort zuweisen .

Wenn wir uns diese beiden Zeilen jetzt noch einmal ansehen, sollte es mehr Sinn ergeben, was passiert:

Random random = new Random();  
int answer = random.Next(10) + 1; 

Zuerst erstellen wir ein neues Objekt basierend auf dem Random Klasse, die wir zufällig nennen . Dann fragen wir das zufällig ruft sein Next() auf -Methode und übergeben Sie den Wert 10 an diese Methode. Dann, wenn diese Methode ausgeführt wurde, addieren wir 1 zum Ergebnis und speichern dann den Wert in einem int genannt Antwort .

Das ist es! Sie sind fertig! Jetzt muss Ihr Benutzer jedes Mal, wenn Sie dieses Programm ausführen, einen zufälligen Wert erraten, den Sie dem Computer zu generieren angewiesen haben.

.

Sehen Sie, wie weit Sie gekommen sind

Sie haben – hoffentlich – alle Aspekte eines einfachen Konsolenspiels entwickelt und verstanden. In dieser Serie haben Sie viele Aspekte des Programmierens gelernt, wie Programme ausgeführt werden, wie Anwendungen erstellt werden, wie Sie Code schreiben, welchen Code Sie schreiben, Variablen, Schleifen, Verzweigungen, Objekte, Klassen.

Was Sie jedoch wissen sollten, ist, dass das, was Sie jetzt gelernt haben, nur die Grundlage dessen ist, was Sie als Programmierer wissen müssen. Ganz gleich, ob Sie als Entwickler einen Weg einschlagen oder einfach nur genug lernen möchten, um Ihre Freunde zu beeindrucken, die Lektionen in diesen Artikeln sollten ein guter Ausgangspunkt sein.

Ich hoffe, dass Ihnen diese Serie gefallen hat und Sie daran interessiert sind, mehr zu entdecken. Schauen Sie sich auch die anderen Artikel in der Atlantic-Community an. Wo auch immer Sie diese Serie von hier aus hinführt, genießen Sie Ihr Programm! Sehen Sie sich unbedingt die marktführenden VPS-Hosting-Lösungen von Atlantic.Net an.

Anleitungsserie

Dies ist Teil 5 einer 5-teiligen Serie zur Einführung in die Programmierung

  1. Einführung in die Programmierung:Erste Schritte
  2. Einführung in die Programmierung:Ihr erstes Programm
  3. Einführung in die Programmierung:Variablen, Typen und Datenbearbeitung
  4. Einführung in die Programmierung:Flusskontrolle
  5. Einführung in die Programmierung:Objektorientierte Programmierung

Linux
  1. Programmiersprache C - Einführung

  2. So fangen Sie an, eine Programmiersprache zu lernen

  3. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  4. Wie können Sie das VDSO-Objekt mit Ihrer eigenen Programmiersprache nutzen?

  5. Wie funktionieren SO-Nummern (Shared Object)?

Gewusst wie:Einführung in die Programmierung – Variablen, Typen und Datenbearbeitung

Gewusst wie:Objektorientierte Programmierung – Konstruktoren und Vererbung

So installieren Sie die Go-Programmiersprache unter Ubuntu 20.04

So installieren Sie die Programmiersprache Rust auf AlmaLinux 8

So installieren Sie die Programmiersprache Rust unter Linux

So installieren Sie GoLang (Go-Programmiersprache) unter Linux