Ruby - Klassen und Objekte

Ruby ist eine perfekte objektorientierte Programmiersprache. Zu den Merkmalen der objektorientierten Programmiersprache gehören -

  • Datenverkapselung
  • Datenabstraktion
  • Polymorphism
  • Inheritance

Diese Funktionen wurden im Kapitel Objektorientiertes Ruby erläutert .

Ein objektorientiertes Programm umfasst Klassen und Objekte. Eine Klasse ist die Blaupause, aus der einzelne Objekte erstellt werden. In objektorientierten Begriffen sagen wir, dass Ihr Fahrrad eine Instanz der Klasse von Objekten ist, die als Fahrräder bekannt sind.

Nehmen Sie das Beispiel eines Fahrzeugs. Es umfasst Räder, Leistung und Kraftstoff- oder Gastankkapazität. Diese Merkmale bilden die Datenelemente der Klasse Fahrzeug. Anhand dieser Eigenschaften können Sie ein Fahrzeug vom anderen unterscheiden.

Ein Fahrzeug kann auch bestimmte Funktionen haben, wie z. B. Anhalten, Fahren und Beschleunigen. Auch diese Funktionen bilden die Datenelemente der Klasse Fahrzeug. Sie können daher eine Klasse als eine Kombination von Merkmalen und Funktionen definieren.

Eine Klasse Fahrzeug kann definiert werden als -

Class Vehicle {

   Number no_of_wheels
   Number horsepower
   Characters type_of_tank
   Number Capacity
   Function speeding {
   }
   
   Function driving {
   }
   
   Function halting {
   }
}

Durch Zuweisen unterschiedlicher Werte zu diesen Datenelementen können Sie mehrere Instanzen der Klasse Fahrzeug bilden. Zum Beispiel hat ein Flugzeug drei Räder, eine Leistung von 1.000 PS, Kraftstoff als Tanktyp und ein Fassungsvermögen von 100 Litern. Ebenso hat ein Auto vier Räder, eine Leistung von 200 PS, Benzin als Tanktyp und ein Fassungsvermögen von 25 Litern.

Eine Klasse in Ruby definieren

Um die objektorientierte Programmierung mit Ruby zu implementieren, müssen Sie zunächst lernen, wie Sie Objekte und Klassen in Ruby erstellen.

Eine Klasse in Ruby beginnt immer mit der Schlüsselwortklasse , gefolgt vom Namen der Klasse. Der Name sollte immer in Großbuchstaben stehen. Die Klasse Kunde kann angezeigt werden als -

class Customer
end

Sie beenden eine Klasse mit dem Schlüsselwort end . Alle Datenelemente in der Klasse befinden sich zwischen der Klassendefinition und dem Schlüsselwort end .

Variablen in einer Ruby-Klasse

Ruby bietet vier Arten von Variablen:

  • Local Variables- Lokale Variablen sind die Variablen, die in einer Methode definiert sind. Lokale Variablen sind außerhalb der Methode nicht verfügbar. Weitere Details zur Methode finden Sie im folgenden Kapitel. Lokale Variablen beginnen mit einem Kleinbuchstaben oder _.

  • Instance Variables- Instanzvariablen sind methodenübergreifend für eine bestimmte Instanz oder ein bestimmtes Objekt verfügbar. Das bedeutet, dass sich Instanzvariablen von Objekt zu Objekt ändern. Instanzvariablen wird das at-Zeichen (@) gefolgt vom Variablennamen vorangestellt.

  • Class Variables- Klassenvariablen sind für verschiedene Objekte verfügbar. Eine Klassenvariable gehört zur Klasse und ist ein Merkmal einer Klasse. Vor ihnen steht das Zeichen @@ und der Variablenname.

  • Global Variables- Klassenvariablen sind nicht klassenübergreifend verfügbar. Wenn Sie eine einzelne Variable haben möchten, die klassenübergreifend verfügbar ist, müssen Sie eine globale Variable definieren. Vor den globalen Variablen steht immer das Dollarzeichen ($).

Beispiel

Mit der Klassenvariablen @@ no_of_customers können Sie die Anzahl der Objekte bestimmen, die erstellt werden. Dies ermöglicht die Ableitung der Anzahl der Kunden.

class Customer
   @@no_of_customers = 0
end

Erstellen von Objekten in Ruby mit einer neuen Methode

Objekte sind Instanzen der Klasse. Sie lernen nun, wie Sie Objekte einer Klasse in Ruby erstellen. Sie können Objekte in Ruby mithilfe der Methode new der Klasse erstellen .

Die Methode new ist ein eindeutiger Methodentyp, der in der Ruby-Bibliothek vordefiniert ist. Die neue Methode gehört zu den Klassenmethoden .

Hier ist das Beispiel zum Erstellen von zwei Objekten cust1 und cust2 der Klasse Customer -

cust1 = Customer. new
cust2 = Customer. new

Hier sind cust1 und cust2 die Namen zweier Objekte. Sie schreiben den Objektnamen gefolgt vom Gleichheitszeichen (=), worauf der Klassenname folgt. Dann folgen der Punktoperator und das Schlüsselwort new .

Benutzerdefinierte Methode zum Erstellen von Ruby-Objekten

Sie können Parameter an die Methode new übergeben und diese Parameter können zum Initialisieren von Klassenvariablen verwendet werden.

Wenn Sie die neue Methode mit Parametern deklarieren möchten, müssen Sie die Initialisierung der Methode zum Zeitpunkt der Klassenerstellung deklarieren .

Die Initialisierungsmethode ist ein spezieller Methodentyp, der ausgeführt wird, wenn die neue Methode der Klasse mit Parametern aufgerufen wird.

Hier ist das Beispiel zum Erstellen einer Initialisierungsmethode:

class Customer
   @@no_of_customers = 0
   def initialize(id, name, addr)
      @cust_id = id
      @cust_name = name
      @cust_addr = addr
   end
end

In diesem Beispiel deklarieren Sie die Initialisierungsmethode mitid, name, und addrals lokale Variablen. Hier def und Ende verwendet , um eine Methode zu definieren Rubin initialize . Weitere Informationen zu Methoden finden Sie in den folgenden Kapiteln.

Bei der Initialisierungsmethode übergeben Sie die Werte dieser lokalen Variablen an die Instanzvariablen @cust_id, @cust_name und @cust_addr. Hier enthalten lokale Variablen die Werte, die zusammen mit der neuen Methode übergeben werden.

Jetzt können Sie Objekte wie folgt erstellen:

cust1 = Customer.new("1", "John", "Wisdom Apartments, Ludhiya")
cust2 = Customer.new("2", "Poul", "New Empire road, Khandala")

Mitgliedsfunktionen in der Ruby-Klasse

In Ruby werden Funktionen als Methoden bezeichnet. Jede Methode in einer Klasse beginnt mit dem Schlüsselwort def, gefolgt vom Methodennamen.

Der Methodenname wird in immer bevorzugt lowercase letters. Sie beenden eine Methode in Ruby mit dem Schlüsselwort end .

Hier ist das Beispiel zum Definieren einer Ruby-Methode:

class Sample
   def function
      statement 1
      statement 2
   end
end

Hier Anweisung 1 und Anweisung 2 sind ein Teil des Körpers des Verfahrens Funktion innerhalb der Klasse Probe. Diese Aussagen können jede gültige Ruby-Aussage sein. Zum Beispiel können wir eine Methode setzen , um Hello Ruby wie folgt zu drucken :

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

Erstellen Sie nun im folgenden Beispiel ein Objekt der Sample-Klasse, rufen Sie die Hello- Methode auf und sehen Sie das Ergebnis:

#!/usr/bin/ruby

class Sample
   def hello
      puts "Hello Ruby!"
   end
end

# Now using above class to create objects
object = Sample. new
object.hello

Dies führt zu folgendem Ergebnis:

Hello Ruby!

Einfache Fallstudie

Hier ist eine Fallstudie, wenn Sie mehr mit Klasse und Objekten üben möchten.

Ruby Class Fallstudie