Guten Morgen Zusammen,
erste mal vielen Danke für die Antwort!
Leider habe ich es immer noch nicht verstanden

*Entschuldigung*.
Deshalb habe ich noch mal darüber nachgedacht (hoffentlich war das kein Fehler!

).
Mir würde es schon ausreichen wenn ihr mir sagt "Junge du bist auf dem völligen Holzweg" oder
"Junge im Grunde stimmt es". Eine Begründung dazu wär natrülich noch sehr freundlich

.
Also, wenn ich
1 2 3 4 5 6
|
class Foo def bar puts "test" end end
|
in Ruby ausführe, dann macht Ruby folgendes, es reserviert Speicher für ein Objekt für eine Metaklasse
und für eine Klasse. Speichert dann die Referenz in der Konstanten Foo. Im Objekt-Speicher steht dann
unter klass die Referenz auf den Speicherbereich der Metaklasse, dort steht dann unter super die
Referenz auf den Speicherbereich von der Klasse Class. So und zum Schluß steht im Speicherbereich der Klasse Foo
noch die methode bar. Da nun im Objekt Foo keine Referenz zum Speicherbereich der Klasse Foo steht kann
auch nicht auf diese Methoden zugegriffen werden.
Wenn ich nun
ausführe, wird im Speicher ein Object erstellt, in dem unter klass die Referenz auf den Speicherberich der Klasse Foo
steht und somit kann über f auf die Methode bar zugegriffen werden.
Weiter wär dann,
1 2 3 4 5 6 7 8
|
class Foo class <<self def hallo puts "sagt freundlich Hallo!" end end end
|
ein Zugriff auf die Metaklasse von Foo, der die Methode hallo übergeben wird.
Da nun im Foo Objekt die Referenz auf den Speicherbereich der Metaklasse von Foo besteht wird auch
mit Foo.hallo die Methode hallo gefunden.
Vielen Dank für eure Zeit!
Gruß wirrwarr