Java Brackets?
was ist an dem Code falsch?
Die Fehler verschwinden, wenn weitere { } hinzugefügt werden.
so verschwinden die Fehlermeldungen.
Die Klammern sind doch aber überflüssig, oder?
3 Antworten
Damit du deinen Code direkt ausführen kannst, benötigst du die main-Methode:
public class Vokale {
public static void main(String[] args){
// auszuführender Code
}
}
Code, der direkt in eine Klasse gesetzt wird, aber die Klasse nicht definiert, ist syntaktisch falsch. Inhaltlicher Code gehört in eine Methode wie die main-Methode.
Warum es mit den zusätzlichen geschweiften Klammern funktioniert, ist vielleicht etwas zu viel für den Anfang, ich erkläre es aber trotzdem: Wird in einer Klasse auf Methodenebene ein einfacher Block gesetzt, wird dieser als sog. instance initialization-Block interpretiert. Dieser kann inhaltlichen Code enthalten und wird immer dann ausgeführt, wenn die Klasse initialisiert wird, sogar noch vor dem Konstruktor. Es ist also eher ein nicht beabsichtigter Zufall, dass der Code in diesem Fall tatsächlich syntaktisch korrekt ist.
Mehr dazu hier: https://www.baeldung.com/java-static-instance-initializer-blocks
In eine Klasse gehört eine Methode. IMMER! Also wenn du Code ausführen willst.
public class Vokale {
private String input = "Hallo Welt!";
public void MatchInput() {
// Dein IF
}
}
was ist an dem Code falsch?
Dass du Code direkt in die Klasse und nicht in Methoden schreibst ...
Danke für deine ausführliche Erklärung :-)