[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: