Re: Anfangsbuchstaben in Großbuchstaben ändern [OT]
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
Reply to: