Am Montag 14 August 2006 14:39 schrieb Bjoern Schliessmann: > > Das ist eigentlich wenn man Corba und ähnliches was noch pre OOP > > ist ausklammert die gängige Definition von Objekt im Zusammenhang > > mit Programmiersprachen. > > In der Informatik ist es IIRC weiter gefasst.
Je nach Zusammenhang ja. In der OOP nein. > > int genießt Wertesemantik. Einem int kann man keinen Zeiger > > zuweisen. > > Warum nicht? In Python geht's. Weil ein int ein int ist und eben kein Zeiger. Das sowas in Script-Sprachen oft geht ist ein Performance hack, der zugunsten von Lesbarkeit und Programmierkomfort auf Eindeutigkeit und statische Typsicherheit verzichtet. > > Hier sieht das genau anders herum aus. Die erste Variante erzeugt > > eine Objektvariable in Wertesemantik. Das geht in Java nicht. > > Warum nicht? Weil in Java alle Objekte auf der Halde liegen und via Referenzvariable (Eingeschränkter Pointer) angesprochen werden. Das Konstrukt Objektvariable gibt es in Java nicht. > > Das zweite einen Pointer auf ein Objekt (In Java eine Referenz). > > Aus Analogiegründen verwendet man in Java dann dieselbe Syntax wie > > in C++. > > Diese Analogiegründe sind IMHO Altlasten, die die Sprache nur > seltsam aussehen lassen ... Altlasten woher? Der Aufruf Klasse1* objekt1 = new Klasse1(); erzeugt in C++ ein Objekt objekt1 vom Typ Klasse1 mit dem parameterlosen Konstruktor auf der Halde und liefert einen Zeiger auf objekt1 zurück. Genau das analoge tut in Java Klasse1 objekt1 = new Klasse1(); Den anderen in C++ möglichen Aufruf ohne new: Klasse1 objekt2 = Klasse1(); (oder eben gleich nur Klasse1 objekt2(); gibt es in Java nicht. > In den hunderten Dateien. Naja, ich gruppiere meine Klassen lieber, > damit finde ich sie besser. Dafür gibt es in Java Packages. Gruß Chris -- A: because it distrupts the normal process of thought Q: why is top posting frowned upon

