Dart für Anfänger 1.6 integer Variable 2
Im letzten Post haben wir uns intensiver mit dem Variablen Typ integer befasst.
Neben double, var und String gehört er zu den einfachen Typen. Gleichzeitig aber haben Sie gelernt, das integer nicht nur ein Variablen Typ ist, sondern auch eine Klasse. Diese steht hierarchisch unter der num Klasse. Diese num Klasse ist die "Mutter" Klasse für integer und double.
Jetzt ist der Zeitpunkt gekommen, sich dem Thema Objektorientiertheit ein wenig näher zu widmen. In diesem Post werden wir es nicht umfassend behandeln. Sondern nur soweit es für das Verständnis zum aktuellen Zeitpunkt wichtig ist.
Begriffe
Nehmen wir an, Sie haben einen Bauplan für ein Haus. Anhand dieses Bauplans bauen Sie 5 Häuser. Da Sie immer den gleichen Bauplan verwenden, werden alle Häuser identisch ausfallen. Das Haus ist in diesem Beispiel das Objekt und der Bauplan die Klasse. Beispiel Code für eine eigene Klasse:
class MeineKlasse { String? name; int? alter; MeineKlasse({this.name,this.alter}); void meinName (){ print('Mein Name ist $name'); } }
Nun hat jedes Haus Eigenschaften. Der Architekt kann das in seinem Bauplan definieren. Ein Dach, Fenster, Türen etc. String? name und int? alter sind die Eigenschaften von MeineKlasse im Beispiel oben.
Bei jedem Hausbau gibt mindestens eine Tätigkeit die immer ausgeführt werden muss, z.b. Mauerbau. Beim definieren einer Klasse nennt man das Konstruktor. Wir können eine Klasse zwar ohne diesen Konstruktor erstellen, Dart wird einfach einen Default Konstruktor einfügen, aber er ist oft notwendig. Letztendlich ist ein Konstruktor eine Funktion, die den gleichen Namen wie die Klasse trägt. Man kann ihm optional Argumente übergeben, die die Eigenschaften mit einem Inhalt versorgen.
Zurück zum Hausbau. Ein Haus hat auch eine Funktionalität. Eine Heizung, Stromversorgung und anderes mehr. Wenn wir eine Klasse definieren, können wir auch die Funktionalität definieren. Im Fall oben ist das die Funktion meinName() {...}.
Es gäbe jetzt noch einiges mehr zum Thema Objekte und Klassen zu schreiben. Da wir uns in diesem Post aber mit der integer Variable bzw. Klasse beschäftigen, sollte das fürs erste reichen.
integer Klasse
Oben haben Sie den Entwurf einer eigenen Klasse gesehen. Die integer Klasse ist Bestandteil der Sprache Dart. Werfen wir einmal einen Blick auf die Eigenschaften der Klasse:
Links sind verschiedene Eigenschaften der integer Klasse aufgeführt, so wie sie in der Dokumentation der Entwickler stehen. Jede Klasse in Dart hat solche Eigenschaften. Diese Eigenschaften können ausgelesen und weiter verwendet werden.
void main() { int a = 22; int b = 0; b = a.bitLength; print(b); }
bitLength gibt dabei die mindestens erforderliche Anzahl an Bits zurück, die benötigt werden um den Integer Wert zu speichern.
Wenn wir eine genauere Erklärung zu einer Eigenschaft brauchen hilft die Entwicklerdokumentation ebenfalls weiter:
Jetzt haben Sie also einen Blick auf die Eigenschaften der integer Klasse geworfen. Kommen wir zu den Methoden:
Die Methoden stellen die Funktionalität der Klasse dar. Im letzten Post haben wir ja schon einige angeschaut. Die Entwicklerdokumentation hat auch hier für jede Methode eine Detail Seite, welche wir durch einen Klick auf den Methoden Namen erreichen. Wenn man sich das anschaut wird sofort klar, das Dart von Haus aus, sehr viele Möglichkeiten bietet. Moderne Entwicklungsumgebungen unterstützen dabei aber enorm. Aber zurück zu den Methoden:
import 'dart:io'; void main(List<String> arguments) { String? zahl = ''; int? zahl2 = 0; String ergebnis; String ergebnis2; String text1; print('Bitte geben Sie Ihr Alter ein:'); zahl = stdin.readLineSync(); zahl2 = int.tryParse(zahl!); ergebnis = zahl2.toString(); text1 = 'Ihr Alter ist:'; ergebnis2 = text1 + ergebnis; print(ergebnis2); print('Programmende!'); }
Fazit
Es sollte jetzt klar sein, das Variablen in Dart komplexer sind, als man vielleicht annehmen möchte. Auf der anderen Seite ist die Dokumentation sehr gut. Obwohl Sie hier nur die integer Klasse sehen, gilt das prinzipielle für alle von Haus aus mitgelieferten Klassen in Dart.
Die wesentlichen Fragen die man sich vor Verwendung von Eigenschaften und Methoden stellen muss: was für eine Rückgabe erhalte ich von einer Methode ? Was für ein Datentyp wird zurückgegeben ? Wenn ich eine Eigenschaft auslese, was für einen Datentyp hat diese ? Wie erwähnt unterstützen einen zum Beispiel Visual Studio Code bei dieser Informationssuche. Schließlich kann man nicht alles auswendig wissen. Bis bald !
Die wesentlichen Fragen die man sich vor Verwendung von Eigenschaften und Methoden stellen muss: was für eine Rückgabe erhalte ich von einer Methode ? Was für ein Datentyp wird zurückgegeben ? Wenn ich eine Eigenschaft auslese, was für einen Datentyp hat diese ? Wie erwähnt unterstützen einen zum Beispiel Visual Studio Code bei dieser Informationssuche. Schließlich kann man nicht alles auswendig wissen. Bis bald !
Kommentare
Kommentar veröffentlichen