Objektorientiert |
Ruby ist objektorientiert
Alle Werte werden durch Objekte repräsentiert
|
| |
? |
Was ist ein Objekt? Was ist der Unterschied zwischen einem Objekt
und einem Wert?
|
| |
Dynamisch |
Die Menge der auf ein Objekt anwendbaren Methoden kann zur Laufzeit verändert werden
|
| |
Variablen |
enthalten einen Verweis (Referenz) auf ein Objekt
|
|
|
| |
Variablen |
sind nicht typisiert
eine Variable kann beliebige Referenzen auf beliebige Objekte aufnehmen
|
| |
Initialisierung |
Variablen werden, wenn sie nicht explizit initialisiert werden, mit einer
Referenz auf ein Spezialobjekt nil initialisiert.
|
| |
Objekt |
Ein Objekt wird eindeutig durch eine Referenz identifiziert.
|
| |
Zustand |
Objekte besitzen Instanz-Variablen, in diesen
wird der Zustand gespeichert
|
| |
Methoden |
Objekte besitzen Methoden.
Diese arbeiten auf den Instanz-Variablen: Lesen, Schreiben, Verändern
|
| |
Typ |
Ein Objekt besitzt einen Typ
|
|
Der Typ eines Objekts wird durch eine Referenz auf ein Objekt vom Typ Class
beschrieben.
|
|
|
| |
Klassen |
Class Objekte werden durch Klassendefinitionen erzeugt
|
|
class X
def initialize()
@x1 = 0
end
def x1
@x1
end
def x1=(v)
@x1=v
end
end
|
| |
Class Objekte |
enthalten
|
.1 |
die Methoden, die auf einem Objekt arbeiten können
|
.2 |
sind vom Typ Class,
d.h. sie besitzen eine Referenz auf ein Class-Objekt
|
.3 |
besitzen eine Referenz auf eine Oberklasse.
Diese Klasse ist die beerbte Klasse
|
|
x.class.superclass
X.superclass
|
| |