Anzeige:
Ergebnis 1 bis 8 von 8

Thema: [Java] "public static main void main(String[] args)" falsch ?

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444

    [Java] "public static main void main(String[] args)" falsch ?

    Das habe ich aus einem Java-Tutorial.
    Code:
    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.01.2003
    Beiträge
    222
    hi,

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

    gruß
    Arthur
    ---------
    irc.mrunix.de #mrunix

  3. #3
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    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.

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.12.2001
    Beiträge
    444
    > 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
    Geändert von fork (20-02-2004 um 18:15 Uhr)

  5. #5
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  6. #6
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    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

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  7. #7
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  8. #8
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    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.d...ne/node32.html

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •