English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werde ich Ihnen den orientierten Programmierstil in Kotlin vorstellen. Sie werden lernen, was eine Klasse ist, wie man Objekte erstellt und wie man sie in einem Programm verwendet.
Kotlin unterstützt funktionale und orientierte Programmierung.
Kotlin unterstützt beispielsweiseHochstufige Funktionen,Funktionstyp und LambdaKlasseFunktiondaher ist es eine ideale Wahl für die Verwendung eines funktionalen Programmierstils. Diese Konzepte werden Sie in den folgenden Kapiteln kennenlernen. In diesem Artikel wird der orientierte Programmierstil in Kotlin vorgestellt.
In der objektorientierten Programmierweise können komplexe Probleme durch die Erstellung von Objekten in kleinere Sets unterteilt werden.
Diese Objekte haben zwei Merkmale:
Zustand
Verhalten
Lassen Sie uns einige Beispiele nennen:
Lamp (Lampe) ist ein Objekt
Es kann im Zustand on (an) oder off (aus) sein.
Sie können turn on (anmachen) und turn off (ausmachen) (Verhalten).
Bicycle ist ein Objekt
Es hat Zustände wie Gang, zwei Räder, Zahnräder usw.
Es hat Verhalten wie Bremsen, Beschleunigen, Gang umschalten usw.
Sie werden detaillierte Funktionen der objektorientierten Programmierung lernen, wie z.B.:Datenkapselung,Vererbung und Polymorphie. Dieser Artikel wird sich auf die Grundlagen konzentrieren, die das Leben einfacher machen.
Bevor Sie in Kotlin ein Objekt erstellen, müssen Sie eine Klasse definieren.
Die Klasse ist der Grundriss des Objekts.
Wir können die Klasse als Grundriss (Prototyp) eines Hauses betrachten. Er enthält alle Details über den Boden, die Türen, die Fenster usw. Basierend auf diesen Beschreibungen bauen wir Häuser. Das Haus ist ein Objekt.
Da viele Häuser mit derselben Beschreibung gebaut werden können, können wir viele Objekte auf Basis einer Klasse erstellen.
Um eine Klasse in Kotlin zu definieren, kann man den Schlüsselwort class verwenden:
class ClassName { // Eigenschaften // Mitgliedsfunktion ... .. ... }
Dies ist ein Beispiel:
class Lamp { //Attribut (Datenmitglied) private var isOn: Boolean = false // Mitgliedsfunktion fun turnOn() { isOn = true } // Mitgliedsfunktion fun turnOff() { isOn = false } }
Hier definieren wir eine Klasse namens Lamp.
Diese Klasse hat eine Eigenschaft isOn (definiert auf die gleiche Weise wie eine Variable) und zwei Memberfunktionen turnOn() und turnOff().
In Kotlin muss entweder eine Eigenschaft initialisiert werden oder sie muss als abstract deklariert werden. In diesem Beispiel wird die Eigenschaft isOn auf false initialisiert.
Klassen, Objekte, Eigenschaften, Memberfunktionen usw. können Sichtbarkeitsmodifikatoren haben. Zum Beispiel ist die Eigenschaft isOn privat. Dies bedeutet, dass die Eigenschaft isOn nur im Inneren der Klasse Lamp geändert werden kann.
Andere Sichtbarkeitsmodifikatoren sind:
private - Nur im Klass烯nner sichtbar (zugänglich).
public - Überall sichtbar.
protected - Für Klasse und ihre Unterklassen sichtbar.
internal - Jeder Client im Modul kann auf sie zugreifen.
Sie werden später inKotlin-SichtbarkeitsmodifikatorenIn diesem Artikel werden die Modifikatoren protected und internal besprochen.
Falls kein Sichtbarkeitsmodifikator angegeben ist, ist der Standardwert default public.
In dem obigen Programm sind die Memberfunktionen turnOn() und turnOff() öffentlich, während die Eigenschaft isOn privat ist.
Bei der Definition einer Klasse wird nur die Norm des Objekts definiert; es wird keine Speicher- oder Speicherplatzzuweisung vorgenommen.
Um auf in der Klasse definierte Members zuzugreifen, müssen Sie ein Objekt erstellen. Lassen Sie uns ein Objekt der Klasse Lamp erstellen.
class Lamp { // Attribut (Datenmitglied) private var isOn: Boolean = false // Mitgliedsfunktion fun turnOn() { isOn = true } // Mitgliedsfunktion fun turnOff() { isOn = false } } fun main(args: Array<String>) { val l1 = Lamp() // Erstellen Sie ein Objekt der Klasse Lamp l1Objekt val l2 = Lamp() // Erstellen Sie ein Objekt der Klasse Lamp l2Objekt }
Dieser Programm erstellt zwei Objekte l1und l2Klasse Lamp. Die isOn zwei Leuchter leistung l1und l2wird false sein.
Sie können den Punkt-Operator (. verwenden, um Eigenschaften und Memberfunktionen der Klasse zu erreichen. Zum Beispiel:
l1.turnOn()
Dieser Ausdruck ruft die Funktion turnOn() des Objekts l1 Die Funktion turnOn().
Lassen Sie uns einen anderen Beispielfall nennen:
l2.isOn = true
Hier versuchen wir, dem Objekt l2 Die Eigenschaft isOn. Beachten Sie, dass die Eigenschaft isOn private ist und eine Ausnahme ausgelöst wird, wenn Sie versuchen, isOn von außen aufzurufen.
class Lamp { // Attribut (Datenmitglied) private var isOn: Boolean = false // Mitgliedsfunktion fun turnOn() { isOn = true } // Mitgliedsfunktion fun turnOff() { isOn = false } fun displayLightStatus(lamp: String) { if (isOn == true) println("$lamp Licht ist an.") else println("$lamp Licht ist aus.") } } fun main(args: Array<String>) { val l1 = Lamp() // Erstellen Sie ein Objekt der Klasse Lamp l1Objekt val l2 = Lamp() // Erstellen Sie ein Objekt der Klasse Lamp l2Objekt l1.turnOn() l2.turnOff() l1.displayLightStatus("l1) l2.displayLightStatus("l2) }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
l1 Das Licht ist an. l2 Das Licht ist an.
Das Licht ist aus.
Im obigen Programm:
Die Klasse Lamp wurde erstellt.
Diese Klasse hat eine Eigenschaft isOn und drei Memberfunktionen turnOn(), turnOff() und displayLightStatus().1In der Funktion main() wurden zwei Objekte der Klasse Lamp L2.
und L1.1Hier wird l1Das Objekt l
gesetzt. Dies ruft die Funktion turnOn() auf. Diese Methode setzt l2 Gleichzeitig wird die Instanzvariable isOn des Objekts l2Das Objekt: l2gesetzt. Dies ruft die Funktion turnOff() auf. Diese Methode setzt l
Dann wird der isOff-Instanzvariable des Objekts l1und l2Der Aufruf der Funktion displayLightStatus() durch das Objekt, die nach dem Wert von isOn (true oder false) eine angemessene Nachricht ausgibt.
Beachten Sie, dass die Eigenschaft isOn im Klassinnern auf false initialisiert wird. Wenn Sie ein Objekt dieser Klasse erstellen, wird die Eigenschaft isOn des Objekts automatisch auf false initialisiert. Daher ist es nicht erforderlich, l2 Der Aufruf von turnOff() durch das Objekt setzt die Eigenschaft isOn auf false.
Beispielsweise:
class Lamp { // Attribut (Datenmitglied) private var isOn: Boolean = false // Mitgliedsfunktion fun turnOn() { isOn = true } // Mitgliedsfunktion fun turnOff() { isOn = false } fun displayLightStatus() { if (isOn == true) println("Das Licht ist an.") else println("Das Licht ist aus.") } } fun main(args: Array<String>) { val lamp = Lamp() lamp.displayLightStatus() }
Wenn das Programm ausgeführt wird, lautet die Ausgabe:
Das Licht ist aus.
Dieser Artikel behandelt nur die Grundkenntnisse der objektorientierten Programmierung in Kotlin.