Java Klausurfrage zu Eclipse JAVA-Programmierung

methoden haben aber zusätzlich eine implizite referenz/this und einen rückgabewert (auch void...), der konstruktor objektiv betrachtet nicht. (auch wenn er prinzipiell ein instanziertes objekt einer klasse zurückgibt)
 
hugeegosorry schrieb:
guter aspekt. ich würde einen konstruktor jetzt als einen spezialfall einer methode für den compiler auslegen/definieren, als notwendigen baustein für ein objekt.
dann ist es oberflächlich betrachtet immernoch eine methode mit dem rückgabewert einer (referenz/zeiger zu einer) neu angelegten instanz.

Oberflächlich und nach eigener subjektiver Auslegung vllt. aber per Definition ist ein Konstruktor keine Methode. Ein Kontruktor unterscheidet sich von einer Methode einfach so erheblich, dass es als etwas eigenes betrachtet wird. Hier der "Java Language Specifiction"-Anschnitt zu Konstruktoren:

http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.8

Der dabei entscheidende Satz ist:
"Constructor declarations are not members. They are never inherited and therefore are not subject to hiding or overriding."

Konstruktoren sind im Gegensatz zu Methoden keine "Member" und (das ist der wichtigste Aspekt) sie werden nicht vererbt.


edeltoaster schrieb:
methoden haben aber zusätzlich eine implizite referenz/this und einen rückgabewert (auch void...), der konstruktor objektiv betrachtet nicht. (auch wenn er prinzipiell ein instanziertes objekt einer klasse zurückgibt)

Kurze Anmerkung zu "this":
Während der Ausführung eines Konstruktors existiert das erzeugte Objekt bereits und kann, wie bei einer Methode, mit "this" referenziert werden.
 
Zurück
Oben