Nur Main: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
(correction(NurMain): Corrected the examples under the article "Nur Main" [issue-6])
(correction(NurMain): Added examples & keypoints to make it more understandable [issue-13])
Zeile 11: Zeile 11:
|vorher====Beschreibung===
|vorher====Beschreibung===
Die Main-Methode <syntaxhighlight inline lang="Java">public static void main (String[] args)</syntaxhighlight> ist lediglich der Eingangspunkt für das Programm. Sie sollte deshalb so kurz wie möglich sein und keine weiteren Aspekte behandeln.
Die Main-Methode <syntaxhighlight inline lang="Java">public static void main (String[] args)</syntaxhighlight> ist lediglich der Eingangspunkt für das Programm. Sie sollte deshalb so kurz wie möglich sein und keine weiteren Aspekte behandeln.
Besonders heißt das, dass nie das gesamte Programm in der Main-Methode sein sollte. Nutzen Sie mehrere Klassen und Methoden, um das Programm nach den Prinzipien der Objektorientierung und des [[Geheimnisverrat|Geheimnisverrats]] zu strukturieren.
Besonders heißt das, dass nie das gesamte Programm in der Main-Methode sein sollte. Nutzen Sie mehrere Klassen und Methoden, um das Programm nach den Prinzipien der Objektorientierung und des [[Geheimnisverrat|Geheimnisverrats]] zu strukturieren.
Die Ausnahme dazu bildet das Validieren der Parameter, die für das Starten des Programms wichtig sind und demnach nicht an das Programm selbst übergeben werden können.
}}
{{Inhaltsblock
|vorher====In Kürze===
* So kurz wie möglich halten
* Nicht das gesamte Programm in der Main-Methode implementieren.
* Die Funktionalität auf mehrere Klassen und Methoden aufteilen
}}
{{Inhaltsblock
|vorher====Was soll ich in der Main-Methode machen?===
* Validieren der Parameter, die für das Starten des Programms wichtig sind und demnach nicht an das Programm selbst übergeben werden können.
* Laden einer Konfigurationsdatei.
* Erzeugen und Starten der Hauptanwendung (Applikation-Klasse).
}}
{{Inhaltsblock
|color=green
|vorher=Positivbeispiel
|Beispiel=public static void main(String[] args) {
    try {
        // Validieren der Parameter
        if (args.length < 1) {
            System.err.println("Bitte geben Sie den Pfad zur Konfigurationsdatei an.");
            System.exit(1);
        }
 
        // Laden der Konfigurationsdatei
        Config config = ConfigLoader.load(args[0]);
 
        // Erzeugen und Starten der Hauptanwendung
        Application app = new Application(config);
        app.run();
    } catch (Exception e) {
        System.err.println("Fehler beim Starten der Anwendung: " + e.getMessage());
        System.exit(1);
    }
}
}}
{{Inhaltsblock
|vorher====Beispiele===
}}
}}
{{Inhaltsblock
{{Inhaltsblock

Version vom 22. Oktober 2025, 11:19 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 1 annotiert und ab Blatt 2 abgezogen wird. 🤓

Beschreibung

Die Main-Methode public static void main (String[] args) ist lediglich der Eingangspunkt für das Programm. Sie sollte deshalb so kurz wie möglich sein und keine weiteren Aspekte behandeln.

Besonders heißt das, dass nie das gesamte Programm in der Main-Methode sein sollte. Nutzen Sie mehrere Klassen und Methoden, um das Programm nach den Prinzipien der Objektorientierung und des Geheimnisverrats zu strukturieren.

In Kürze

  • So kurz wie möglich halten
  • Nicht das gesamte Programm in der Main-Methode implementieren.
  • Die Funktionalität auf mehrere Klassen und Methoden aufteilen

Was soll ich in der Main-Methode machen?

  • Validieren der Parameter, die für das Starten des Programms wichtig sind und demnach nicht an das Programm selbst übergeben werden können.
  • Laden einer Konfigurationsdatei.
  • Erzeugen und Starten der Hauptanwendung (Applikation-Klasse).

Positivbeispiel

public static void main(String[] args) {
    try {
        // Validieren der Parameter
        if (args.length < 1) {
            System.err.println("Bitte geben Sie den Pfad zur Konfigurationsdatei an.");
            System.exit(1);
        }

        // Laden der Konfigurationsdatei
        Config config = ConfigLoader.load(args[0]);

        // Erzeugen und Starten der Hauptanwendung
        Application app = new Application(config);
        app.run();
    } catch (Exception e) {
        System.err.println("Fehler beim Starten der Anwendung: " + e.getMessage());
        System.exit(1);
    }
}

Beispiele

Negativbeispiel:

public class Main {
    public static void main(String[] args) {
        if (args.length < 2) {
            return;
        }
        int first = Integer.parseInt(args[0]);
        int second = Integer.parseInt(args[1]);
        int result;
        if (first < 0 || second < 0) {
            System.out.println("Negative numbers are not allowed.");
            result = 0;
        } else {
            result = first + second;
        }
        System.out.println("Result: " + result);
    }
}
Hier befindet sich die gesamte Logik in der Main-Methode, wodurch sie zu viel Funktionalität enthält.

Positivbeispiel:

public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        Parser parser = new Parser();
        int first = parser.parseFirst(args);
        int second = parser.parseSecond(args);
        int result = calculator.add(first, second);
        System.out.println("Result: " + result);
    }
}

public class Calculator {
    public int add(int x, int y) {
        if (x < 0 || y < 0) {
            System.out.println("Negative numbers are not allowed.");
            return 0;
        }
        return x + y;
    }
}

public class Parser {
    public int parseFirst(String[] args) {
        if (args.length < 1) {
            // Throws exception
        }
        return Integer.parseInt(args[0]);
    }

    public int parseSecond(String[] args) {
        // Parses the passed in args and checks if correct
    }
}
Die Funktionalität der Main-Methode wurde auf mehrere Hilfsmethoden verteilt, wodurch der Code besser strukturiert und verständlicher ist.