Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einleitung
2 Die Basis der Objektorientierung
3 Die Prinzipien des objektorientierten Entwurfs
4 Die Struktur objektorientierter Software
5 Vererbung und Polymorphie
6 Persistenz
7 Abläufe in einem objektorientierten System
8 Module und Architektur
9 Aspekte und Objektorientierung
10 Objektorientierung am Beispiel: Eine Web-Applikation mit PHP 5 und Ajax
A Verwendete Programmiersprachen
B Literaturverzeichnis
Stichwort
Ihre Meinung?

Spacer
 <<   zurück
Objektorientierte Programmierung von Bernhard Lahres, Gregor Rayman
Das umfassende Handbuch
Buch: Objektorientierte Programmierung

Objektorientierte Programmierung
2., aktualisierte und erweiterte Auflage, geb.
656 S., 49,90 Euro
Rheinwerk Computing
ISBN 978-3-8362-1401-8
Pfeil A Verwendete Programmiersprachen
  Pfeil A.1 C++
  Pfeil A.2 Java
  Pfeil A.3 C#
  Pfeil A.4 JavaScript
  Pfeil A.5 CLOS
  Pfeil A.6 Python
  Pfeil A.7 Ruby


Rheinwerk Computing - Zum Seitenanfang

A.7 Ruby  topZur vorigen Überschrift

Ruby ist ähnlich wie Python eine interpretierte, dynamisch typisierte objektorientierte Skriptsprache. Sie wurde von Yukihiro Matsumoto 1993 erfunden, der mit Python und dessen Objektorientierung nicht ganz zufrieden war. Der Name Ruby wurde von der Skriptsprache Perl inspiriert – es ist der Name eines Edelsteins. [Ja, wir wissen, dass Perlen keine Steine sind und möchten an dieser Stelle die Leistungen der Muscheln nicht verschweigen. ]

Ruby kann man tatsächlich als eine rein objektorientierte Programmiersprache betrachten. Sie kennt keine globalen Routinen, jede Funktion und jede Prozedur ist eine Methode einer Klasse oder eines Objekts.

In Ruby kann man bereits bestehende Klassen und auch die Klasse object um neue Methode erweitern, die dann jedem neuen und jedem bereits existierenden Objekt zur Verfügung stehen. Dies ist den globalen Methoden recht ähnlich, unterscheidet sich von ihnen aber dennoch, denn die Methoden haben Zugriff auf die Datenelemente des konkreten aufgerufenen Objekts.

Syntax von Ruby

In Gegensatz zu Python ist die Einrücktiefe in Ruby nicht relevant. Die Gruppen von Anweisungen werden meistens durch das Schlüsselwort end geschlossen.

Eines der wichtigsten Merkmale von Ruby ist die Verwendung von Blöcken. Ein Block ist eine anonyme Methode, die in anderen Methoden deklariert werden kann. Ein Block kann entweder durch das Schlüsselwortpaar do/end markiert werden oder durch ein Paar der geschweiften Klammern { und }.

Doch auch in Ruby kann man sich so manche Klammer sparen. Hier sind nämlich die Klammern bei einem Funktionsaufruf optional. So kann man Math.sin(1.0) auch als Math.sin 1.0 schreiben. Die Klammern sind nur dann notwendig, wenn sonst nicht eindeutig wäre, wo die Liste der Parameter aufhört.

Schauen wir uns die Implementierung einer Versionsnummer in Ruby an:

class VersionNumber < Object  
    def initialize(parts)  
        @parts = parts.clone  
    end 
end 
 
v = VersionNumber.new [1, 2, 3] 
  • Hier deklarieren wir die Klasse VersionNumber, die von der Klasse Object abgeleitet wird. Die Vererbung von der Klasse Object müssten wir nicht explizit angeben, wir machen es nur, um die Syntax der Vererbungsbeziehung in Ruby zu demonstrieren. Die Namen der Klassen in Ruby fangen immer mit einem Großbuchstaben an.
  • Die Methode initialize wird beim Erzeugen eines neuen Exemplars der Klasse aufgerufen. Sie erwartet einen Parameter mit dem Namen parts.
  • Die Datenelemente eines Objekts werden in Ruby mit dem Präfix @ markiert. So kann man Parameter und lokale Variablen von den Datenelementen der Objekte unterscheiden. Die Datenelemente der Objekte sind immer privat. Mit dem doppelten Präfix @@ werden klassenbezogene Datenelemente bezeichnet.
  • Hier erstellen wir ein neues Exemplar unserer Klasse.

Moment mal, haben wir nicht etwas vergessen? Unsere Klasse braucht doch noch die Methode, die ihre Exemplare als eine Zeichenkette ausgeben kann. Kein Problem für Ruby, wir können die Klasse einfach um eine neue Methode erweitern:

class VersionNumber  
  def to_s  
    result = ''; sep = ''  
    @parts.each do |element|  
      result += sep + element.to_s 
      sep = '.' 
    end 
    return result  
  end 
end 
 
print v # gibt 1.2.3 aus
  • Wir deklarieren hier keine neue Klasse VersionNumber, wir wechseln lediglich den Kontext, um die neu definierten Methoden der bereits bestehenden Klasse VersionNumber zuzuweisen.
  • Wir überschreiben die geerbte Methode to_s. Wir müssen keine Klammern eingeben, weil die Methode keine Parameter erwartet.
  • Wenn man mehrere Statements auf derselben Zeile angibt, muss man sie durch ein Semikolon trennen.
  • each ist hier kein Schlüsselwort, es ist eine Methode der Liste @parts, die als Parameter einen Block erwartet. Der Block, eine anonyme Methode, wird in das Paar do/end eingeschlossen und erwartet einen Parameter, den wir hier element nennen. Die Methode each ruft den Block nacheinander für alle Elemente der Liste auf.
  • Hier verlassen wir die Methode to_s und geben den Inhalt der lokalen Variablen result zurück. An dieser Stelle ist das Schlüsselwort return nicht wirklich notwendig. Eine Methode gibt nämlich immer den letzten in ihr ausgewerteten Ausdruck zurück. Hier würde also der Text result reichen. Das Schlüsselwort return braucht man nur dann, wenn man eine Methode vor ihrer letzten Anweisung verlassen oder in einer Prozedur nichts zurückgeben möchte.

Ressourcen

Die erste Seite, die man besuchen sollte, wenn man sich für Ruby interessiert, ist http://www.ruby-lang.org. Ruby hat in letzter Zeit wegen des Frameworks Ruby on Rails sehr viel an Popularität gewonnen. Mehr erfahren über Ruby on Rails kann man unter http://www.rubyonrails.org/.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Neuauflage: Objektorientierte Programmierung






Neuauflage:
Objektorientierte Programmierung

Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: Einstieg in Python






 Einstieg in Python


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de