Konstruktoren

Status
Nicht offen für weitere Antworten.

kossy

Bekanntes Mitglied
Hallo,

ich habe in mehreren Büchern gelesen, dass ein oder auch vielleicht mehrere Konstruktoren einer Klasse keinen Rückgabewert enthalten dürfen. Ich darf also nur schreiben:

Java:
public class Test1{

public Test1(){}

}

nicht aber:

Java:
public class Test1{

public String Test1(){}

}


Wenn ich nun folgendes schreibe:

Java:
public class Test1{

public void Test1(){}

}

kann ich zwar meine Klasse wie gewöhnlich kompilieren, werde aber bspw. in Eclipse durch eine gelbe Unterstreichung auf das Schlüsselwort void aufmerksam gemacht. Ich verstehe nicht, warum Java das zulässt, schließlich ist auch void streng genommen eine Art Rückgabewert, wenn auch nicht gleichzusetzen mit String oder Integer.

//EDIT

Irgednwie konnt eich die Codebeispiele nicht als javacode anzeigen lassen, da diese Optionen nciht sichtbar sind. warum auch immer?
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
Wenn ich nun folgendes schreibe:

Java:
public class Test1{

public void Test1(){}

}
Nun, das ist kein Konstruktor, sondern eine Methode mit einem sehr schlechten Namen, denn Konstruktoren haben wie du schon sagtest keinen Rückgabewert ;)
 

kossy

Bekanntes Mitglied
Ach so, d.h. also, dass wenn ich einen Rückgabewert mit einbaue, dann wird es automatisch zu einer Methode (wenn auch zu einer schlechten)!? Dann setzt Java wohl automatisch den Default Konstruktor oder?
 
M

maki

Gast
Ach so, d.h. also, dass wenn ich einen Rückgabewert mit einbaue, dann wird es automatisch zu einer Methode (wenn auch zu einer schlechten)!?
Ein Konstruktor muss eine bestimmte Signatur haben, sobald du einen Rückgabewert angibst (auch void ist einer), kann es eben kein Konstruktor mehr sein.
Der Name der Methode ist sehr schlecht, denn Methodennamen sollten nie mit einem Großbuchstaben beginnen und auch nicht wie die Klasse heissen.

Dann setzt Java wohl automatisch den Default Konstruktor oder?
Ja, wenn du gar keinen Konstruktor angibst, erzeugt der Compiler einen Standardkonstrutor ohne Parameter.
 

sol1x

Mitglied
Zur Erinnerung - ein Konstruktor sollte ein neues Objekt erzeugen => er braucht keinen Rückgabewert, da das nicht zum Aufgabenbereich eines Konstruktors gehört
 

Noctarius

Top Contributor
Zur Erinnerung - ein Konstruktor sollte ein neues Objekt erzeugen => er braucht keinen Rückgabewert, da das nicht zum Aufgabenbereich eines Konstruktors gehört

Ein Konstruktor erzeugt immer ein neues Objekt, außer er schmeisst eine Exception. Daher braucht nach einer Instanzierung ein Objekt auch nicht auf Null überprüft werden, es kann nicht Null sein.
 

kossy

Bekanntes Mitglied
Hallo !

Ich habe nochmal ne Frage zu dem Thema Konstruktoren:

Das folgende Programm liefert die Ausgabe ,10. Aber warum ist das so, wie genau bezeichnet man das, was in der ersten Codezeile passiert!? Ist static {} auf ein Konstruktor?

Java:
public class Aufgabe{

      {
           System.out.format("1");
      }

      static {
                  System.out.format(",");
      }

      public Aufgabe(){
             System.out.format("0");
      }

      public static void main(String[] args){
             Aufgabe test = new Aufgabe();
      }
 
}
 

Noctarius

Top Contributor
Das sind Klassenkonstruktoren, die aufgerufen werden wenn die Klasse geladen wird (nicht wenn eine Instanz der Klasse erstellt wird).

Das static { } vor einem einfachen { } aufgerufen wird war mir aber auch noch nicht so wirklich bewusst :D
 

HoaX

Top Contributor
Die {...} ohne das static werden immer beim Erstellen einer Instanz aufgerufen nach dem super-Konstruktor und vor dem eigenen.
Die static {...} werden nur beim Laden der Klasse aufgerufen.

Java:
class Test {
        { System.out.println("Hello World"); }

        public static void main(String... args) {
                new Test();
                new Test();
        }
}

edit: Beispiel eingefügt
 

kossy

Bekanntes Mitglied
Wieder einmal besten Dank ! Vielleicht noch eine abschließende Frage zu dem Thema: Können Konstruktoren eigentlich Exceptions werfen bzw. erzeugen?

Könnte ich also einen Konstruktor mit der throws-Klausel deklarieren?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
lougoldi Verkettung von Methoden und Konstruktoren Java Basics - Anfänger-Themen 4
J Konstruktoren und Grafik Java Basics - Anfänger-Themen 3
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
M Methodenaufrufe im Konstruktoren Java Basics - Anfänger-Themen 31
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
M Vererbung Konstruktoren mit festen Werte Java Basics - Anfänger-Themen 2
F Mehrere Konstruktoren? Wofür? Java Basics - Anfänger-Themen 21
J Konstruktoren in Initialisierungsblöcke Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 25
D was bedeutet this. bei Konstruktoren? Java Basics - Anfänger-Themen 4
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
C Die Klasse Menge mit Konstruktoren und einfachen Methoden Java Basics - Anfänger-Themen 5
F Mehrere Konstruktoren Java Basics - Anfänger-Themen 10
G Was ist der Nutzen von generischen Konstruktoren? Java Basics - Anfänger-Themen 4
Q Methoden Konstruktoren anlegen Java Basics - Anfänger-Themen 5
B Objekte in Konstruktoren übergeben Java Basics - Anfänger-Themen 5
D Zähler nicht sichtbar (Thema: Konstruktoren) Java Basics - Anfänger-Themen 2
A Überladen von Konstruktoren Java Basics - Anfänger-Themen 2
V Konstruktoren Java Basics - Anfänger-Themen 15
C Klassen StackOverflow bei erster Nutzung von Klassen/Konstruktoren Java Basics - Anfänger-Themen 9
F Konstruktoren Java Basics - Anfänger-Themen 4
M Erste Schritte Verständnis Problem Konstruktoren Java Basics - Anfänger-Themen 13
Y Klassen, Vererbung, Konstruktoren Java Basics - Anfänger-Themen 13
B Klassen Unterschied Konstruktoren. Java Basics - Anfänger-Themen 3
C Erste Schritte Konstruktoren verstehen Java Basics - Anfänger-Themen 7
W OOP Konstruktoren Erklärung Java Basics - Anfänger-Themen 14
N Abarbeitungsreihenfolge von Konstruktoren Java Basics - Anfänger-Themen 12
O Klassen und Konstruktoren Java Basics - Anfänger-Themen 7
V Konstruktoren -> Funktionsaufrufe Java Basics - Anfänger-Themen 7
Q Konstruktoren und Methoden Java Basics - Anfänger-Themen 2
C Konstruktoren Java Basics - Anfänger-Themen 7
J Konstruktoren Java Basics - Anfänger-Themen 10
M Konstruktoren & Veerbung Java Basics - Anfänger-Themen 6
T Konstruktoren Java Basics - Anfänger-Themen 6
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
R Vererbung Konstruktoren nicht erkannt Java Basics - Anfänger-Themen 17
H Klassen, Konstruktoren, Instanzen etc Java Basics - Anfänger-Themen 6
J OOP Konstruktoren, setMethode, getMethode usw. Java Basics - Anfänger-Themen 7
A überladene Konstruktoren Java Basics - Anfänger-Themen 7
L Frage zu Konstruktoren und dem this Operator Java Basics - Anfänger-Themen 16
W 2 Konstruktoren Java Basics - Anfänger-Themen 8
B Vererbung und Konstruktoren Java Basics - Anfänger-Themen 33
N Vererbung von Konstruktoren mit Parametern Java Basics - Anfänger-Themen 7
S Konstruktoren verketten Java Basics - Anfänger-Themen 6
A Konstruktoren sollen sich gegenseitig aufrufen Java Basics - Anfänger-Themen 10
B Konstruktoren Sichtbarkeit Java Basics - Anfänger-Themen 2
K Kann man Private-Konstruktoren doch aurufen? Java Basics - Anfänger-Themen 8
E Konstruktoren und Methoden Java Basics - Anfänger-Themen 10
E OOP individual + standard-Konstruktoren Java Basics - Anfänger-Themen 9
S Konstruktoren? Java Basics - Anfänger-Themen 5
H Konstruktoren – super! Java Basics - Anfänger-Themen 3
L Geschachtelte Konstruktoren Java Basics - Anfänger-Themen 4
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
J Vererbung und Konstruktoren Java Basics - Anfänger-Themen 14
J Problem mit Konstruktoren Java Basics - Anfänger-Themen 2
G Überladen von Konstruktoren mit unterschiedlichen Datentypen Java Basics - Anfänger-Themen 4
H Befehl mit Konstruktoren Java Basics - Anfänger-Themen 2
L Konstruktoren bei Vererbung Java Basics - Anfänger-Themen 13
Z wie kann ich überladene Konstruktoren "umleiten"? Java Basics - Anfänger-Themen 11
D Blöde(?) Frage zu Konstruktoren und set-Methoden Java Basics - Anfänger-Themen 3
G Interface und Konstruktoren Java Basics - Anfänger-Themen 3
G Frage zu Konstruktoren Java Basics - Anfänger-Themen 12
G Verständnisfrage zu Konstruktoren Java Basics - Anfänger-Themen 5
G Konstruktoren Java Basics - Anfänger-Themen 9
A Konstruktoren überladen Java Basics - Anfänger-Themen 9
H Konstruktoren + Hilfe Java Basics - Anfänger-Themen 12
H Konstruktoren werden nie geerbt Java Basics - Anfänger-Themen 3
O Vor-/Nachteile/Unterschiede von Konstruktoren und Methoden Java Basics - Anfänger-Themen 3
Bierhumpen 2 Konstruktoren Java Basics - Anfänger-Themen 15
T mehrere Konstruktoren für eine Klasse Java Basics - Anfänger-Themen 7
J Instantvariablen und Konstruktoren Java Basics - Anfänger-Themen 2
Y Vererben - Konstruktoren Java Basics - Anfänger-Themen 2
Z übergabe von string[] an konstruktoren oder methoden Java Basics - Anfänger-Themen 3
L Klassen, Vererbung und Konstruktoren Java Basics - Anfänger-Themen 10
S Frage zu Konstruktoren Java Basics - Anfänger-Themen 7
G Problem mit Gültigkeit von Variabeln und Konstruktoren Java Basics - Anfänger-Themen 4
C Konstruktoren Java Basics - Anfänger-Themen 4
G Konstruktoren (was, wozu, wieso, warum) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben