PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Java] "public static main void main(String[] args)" falsch ?



fork
20-02-2004, 16:09
Das habe ich aus einem Java-Tutorial.

public class main {
public static void main(String[] args) {
}
}
Ich bekomme die Warnung in Eclipse: "This method has a constructor name"
Ist das syntaktisch nicht ganz richtig oder ist das ein Eclipse-Fehler?

Wenn ich das "static void" loesche, dann ist die Fehlermeldung weg bekomme aber Kompilierungsfehler.

Sun Java 1.4.2
Eclipse 2.1.1-200306271545

Gruß
Tobias

arthur
20-02-2004, 16:23
hi,

versuch einfach deine Klasse etwas anders
zu benennen (main ist ein sehr schlechter Name ;) )

gruß
Arthur

fs111
20-02-2004, 17:48
Außer das "main" ein ganz schlechter Name ist, sollten Klassen und Interfaces auch immer große geschrieben werden.

fs111

P.S.: Als Java Anfänger würde ich zunächst mal einen Editor und noch keine IDE, wie eclipse benutzen, da lernt man mehr dabei.

fork
20-02-2004, 18:09
> Außer das "main" ein ganz schlechter Name ist

Das main hat so gut zur Methode gepasst. Aber ich glaube jetzt dämmert's. :)

Als ich das ganze noch mit vi und javac auf der Konsole editiert/kompiliert habe hab' ich auch keine Warnung bekommen.

> lieber Editor statt IDE

Das Handling mit den 2-x offenen Fenstern ist aber etwas mühselig, auch wenn's erst 5 Klassen sind.

Danke

peschmae
21-02-2004, 00:07
Du kannst auch einen Editor mit Tabs nehmen (Scite oder Glimmer) - oder Kate, der hat ne Liste in der Sidebar.
Das ist dringendst zu empfehlen.

Dämmern - heisst das hier du hasst es begriffen?

Die Klasse heisst main. Also heisst auch ihr Konstruktor main() - oder mit einem Stringarray als Parameter public void main(String[] args).
Ein Konstruktor ist zwingendermassen nicht-static (sonst würde der überhaupt keinen Sinn machen) - daher das Problem.
Die main-Methode für das Programm muss static sein (sonst würde das nicht gehen) - daher das Problem wenn du sie nicht-static machst.

Insgesamt viel Konfusion wegen einer schlechten Namenswahl. :p

MfG Peschmä

bischi
21-02-2004, 12:15
Weiter ist main eines der wenigen Wörter, die du weder für Klassennahmen, Variabeln oder ähnliches brauchen darfst!!!

MfG Bischi

www.javabuch.de

Editor: Scite

peschmae
21-02-2004, 18:18
Das ist nicht richtig so. Variablen kannst du so nennen (auch wenns ne äusserst doofe Idee ist).
Mit Klassen, die keine main-Methode besitzen gehts auch problemlos (auch wenn das ebenfalls eine äusserst doofe Idee ist)

main ist kein Schlüsselwort der Programmiersprache Java wie z.B. if oder while sondern nur ein Methodenname - ein Aufruf "java <Klassenname>" ruft die Main-Methode dieser Klasse auf. Deshalb muss sie auch static sein, da das ja nix mit Objekten des Typs <Klassenname> zu tun hat...

MfG Peschmä

bischi
21-02-2004, 21:24
Das ist nicht richtig so. Variablen kannst du so nennen (auch wenns ne äusserst doofe Idee ist).
Mit Klassen, die keine main-Methode besitzen gehts auch problemlos (auch wenn das ebenfalls eine äusserst doofe Idee ist)

Stimmt - das hatte ich falsch in Errinnerung. Hier die Liste mit allen Schlüsselwörtern:

http://www.linguistik.uni-erlangen.de/kursmaterial/Java_WS0102/Online/node32.html

MfG Bischi