Nr
Soweit Werte zu gehen, der "Urtyp" (int
, bool
, float
, etc.) in Java sind nicht Objekte. In Ruby sind sie Objekte. (In einigen Ruby-Implementierungen sind Fixnums intern "Werttypen" für die Leistung, aber extern sind sie als "echte" Objekte behandelbar, die über Methoden verfügen).
Darüber hinaus gibt es andere Dinge, die Objekte in Ruby sind, die keine Objekte in Java sind, z. B. Klassen. (Eigentlich Java macht diese als Class
auch, aber in einem anderen Sinne.)
Es gibt einige Dinge, die keine Objekte in beiden Sprachen sind, wie Variablen und Methoden. (Obwohl in Ruby ist es einfach, ein Objekt zu erhalten, die eine bestimmte Methode darstellt.)
Wie dem auch sei, ich denke, das größere Bild ist, dass die Object Oriented programming paradigm präsentiert eine Weise zur Gruppierung von Daten und Operationen an den Daten. (Dies geschieht im Allgemeinen durch Instanzmethoden, wie in Java und Ruby, obwohl es möglicherweise auch durch multiple Versand und andere Sprachen, wie Haskell, die "non-OO" ist, bieten alternative Ansätze für diese Aufgabe.)
Oftmals enthält die Definition von "OO" auch "Vererbung", "Verkapselung", "Abstraktion" und andere alberne Lehrbuchbegriffe, aber die Verwendung und Muster von verschiedenen "OO" -Sprachen können stark variieren und überlagern sich in "non-OO" -Sprachen ;-)
FWIW nicht alles in Ruby ist ein Objekt, aber Werte sind. Dinge wie "wenn" sind nicht. –
"Objektorientiert" scheint so viele Bedeutungen zu haben wie es Leute zu fragen gibt, oder mehr. Seltsam, wie es von Peter Wegner in OOPSLA schon 1987 genau definiert wurde. – EJP