Ruby Klassen und Objekte
Ruby ist eine perfekte objektorientierte Programmiersprache. Zu den Merkmalen objektorientierter Programmiersprachen gehören:
- Datenkapselung
- Datenabstraktion
- Polymorphismus
- Vererbung
Diese Merkmale werden inobjektorientiertem Rubybehandelt.
Ein objektorientiertes Programm umfasst Klassen und Objekte. Eine Klasse ist ein Bauplan, aus dem einzelne Objekte erstellt werden. In der objektorientierten Terminologie ist Ihr Fahrrad eine Instanz der Klasse der Fahrräder.
Nehmen Sie Fahrzeuge als Beispiel; sie umfassen Räder, PS und Kraftstoff- oder Gastankkapazität. Diese Attribute bilden die Datenmember der Klasse Vehicle. Mit diesen Attributen können Sie ein Fahrzeug von anderen Fahrzeugen unterscheiden.
Fahrzeuge können auch bestimmte Funktionen enthalten, wie Anhalten, Fahren und Beschleunigen. Diese Funktionen bilden die Datenmember der Klasse Vehicle. Daher können Sie eine Klasse als eine Kombination aus Attributen und Funktionen definieren.
Die Definition der Klasse Vehicle lautet wie folgt:
Beispiel
Indem Sie diesen Datenmembern unterschiedliche Werte zuweisen, können Sie verschiedene Instanzen der Klasse Vehicle erstellen. Zum Beispiel hat ein Flugzeug drei Räder, 1,000 PS und ein Fassungsvermögen des Treibstofftanks von 100 Litern. Auf die gleiche Weise hat ein Auto vier Räder, 200 PS und ein Fassungsvermögen des Benzintanks von 25 Litern.
Klassen in Ruby definieren
Um objektorientierte Programmierung in Ruby umzusetzen, müssen Sie zuerst lernen, wie Sie Objekte und Klassen in Ruby erstellen.
In Ruby beginnen Klassen immer mit dem Schlüsselwortclass, gefolgt vom Namen der Klasse. Der erste Buchstabe des Klassennamens sollte großgeschrieben werden. Die KlasseCustomerlautet wie folgt:
Sie können das Schlüsselwortendverwenden, um eine Klasse zu beenden.KlasseAlle Datenmember werden zwischen der Klassendefinition und demend platziert.Schlüsselwort.
Variablen in Ruby-Klassen
Ruby bietet vier Arten von Variablen:
- Lokale Variablen:Lokale Variablen sind Variablen, die innerhalb einer Methode definiert werden. Lokale Variablen sind außerhalb der Methode nicht verfügbar. In den folgenden Kapiteln werden Sie weitere Details über Methoden sehen. Lokale Variablen beginnen mit einem Kleinbuchstaben oder _.
- Instanzvariablen:Instanzvariablen können methodenübergreifend innerhalb einer bestimmten Instanz oder eines Objekts verwendet werden. Das bedeutet, dass sich Instanzvariablen von Objekt zu Objekt ändern können. Instanzvariablen haben das Symbol (@), das vor dem Variablennamen steht.
- Klassenvariablen:Klassenvariablen können über verschiedene Objekte hinweg verwendet werden. Klassenvariablen gehören zur Klasse und sind ein Attribut der Klasse. Klassenvariablen haben das Symbol (@@) vor dem Variablennamen.
- Globale Variablen:Klassenvariablen können nicht klassenübergreifend verwendet werden. Wenn Sie eine Variable haben möchten, die klassenübergreifend verwendet werden kann, müssen Sie eine globale Variable definieren. Globale Variablen beginnen immer mit dem Dollarzeichen ($).
Beispiel
Mithilfe der Klassenvariablen @@no_of_customers können Sie die Anzahl der erstellten Objekte bestimmen und damit die Anzahl der Kunden ermitteln.
Beispiel
In Ruby verwendet man dienew-Methode, um Objekte zu erstellen
Objekte sind Instanzen von Klassen. Jetzt lernen Sie, wie Sie Objekte einer Klasse in Ruby erstellen. In Ruby können Sie die Klassenmethodenewverwenden, um Objekte zu erstellen.
Die Methodenewist eine spezielle Methode, die in der Ruby-Bibliothek vordefiniert ist. Die new-Methode gehört zurClass-Methode.
Das folgende Beispiel erstellt zwei Objekte der Klasse Customer, cust1 und cust2:
Hier sind cust1 und cust2 die Namen der beiden Objekte. Auf den Objektnamen folgt ein Gleichheitszeichen (=), auf das Gleichheitszeichen folgt der Klassenname, dann der Punktoperator und das Schlüsselwortnew。
Benutzerdefinierte Methoden zum Erstellen von Ruby-Objekten
Sie können der MethodenewParameter übergeben, die zum Initialisieren von Klassenvariablen verwendet werden können.
Wenn Sie eine Methode mit Parametern für dienew-Methode deklarieren möchten, müssen Sie die Methode beim Erstellen der Klasse deklarieren.initialize。
initializeDie Methode ist eine spezielle Art von Methode, die ausgeführt wird, wenn dienew-Methode der Klasse mit Parametern aufgerufen wird.
Das folgende Beispiel erstellt die initialize-Methode:
Beispiel
In diesem Beispiel können Sie eine Methode mitid、name、addrals lokale Variablen deklariereninitialize-Methode. Hier,defundendwird verwendet, um Ruby-Methoden zu definieren.initializeIn späteren Kapiteln erfahren Sie mehr Details über Methoden.
IninitializeIn der Methode werden die Werte dieser lokalen Variablen an die Instanzvariablen @cust_id, @cust_name und @cust_addr übergeben. Hier werden die Werte der lokalen Variablen zusammen mit der new-Methode übergeben.
Jetzt können Sie Objekte wie folgt erstellen:
Mitgliedsfunktionen in Ruby-Klassen
In Ruby werden Funktionen Methoden genannt.ClassJede Methode darin beginnt mit dem Schlüsselwortdefgefolgt vom Methodennamen.
Methodennamen beginnen immer mitKleinbuchstaben. In Ruby können Sie das Schlüsselwortendverwenden, um eine Methode zu beenden.
Das folgende Beispiel definiert eine Ruby-Methode:
Hier,statement 1undstatement 2ist die Methode innerhalb der Klasse Sample,functionund das Folgende sind die Komponenten seines Körpers. Diese Anweisungen können beliebige gültige Ruby-Anweisungen sein. Zum Beispiel können wir die Methodeputsverwenden, umHello Rubyauszugeben, wie folgt:
Das folgende Beispiel erstellt ein Objekt der Klasse Sample und ruft diehelloMethode auf:
Dies erzeugt das folgende Ergebnis:
Hello Ruby!
Einfache Fallstudie
Wenn Sie mehr Übungen zu Klassen und Objekten machen möchten, hier ist eine Fallstudie:
Andere Erweiterungen