public void xy() vs public static void main(String[] args)?

4 Antworten

Das

public static void main(String[] args){ ... }

ist schlicht und ergreifend die main-Methode jedes Java-Programms, die zur Ausführung notwendig ist. Nur diese Methode wird aufgerufen und der Code innerhalb ausgeführt.

public - um die Methode von überall aus aufrufbar zu machen.

static - um nicht erst eine Instanz der Main-Klasse erzeugen zu müssen, um das Java-Programm ausführen zu können.

void - da die Methode nichts zurückgibt.

main - der Name der Methode.

String[] args - die Argumente als String-Array, die der main-Methode von der Kommandozeile beim Ausführen übergeben werden. In Java werden diese Argumente als command line arguments bezeichnet. Diese benötigt man als Anfänger aber eher selten.

LG

String[] args ist einfach ein Argument also das x von f(x) der Funktion.

static heißt, dass du keine Instanz, also kein Objekt brauchst, um die Funktion auszuführen. Du kannst auch Variablen static machen. Da sie zu keinem Objekt gehören, gibt es aber auch sozusagen nur einen Slot für die jeweilige Variable: wenn du sie von einer Stelle aus setzt, ist sie überall geändert.

main ist schlicht der Name der Methode.

args kann Argumgente der Kommandozeile enthalten, sofern diese gesetzt werden. Die stehen dann als Array zur Verfügung.

Beispielhafte Anweisung in der Konsole:

Java EinProgram eins zwei

args würde demzufolge ein array werden...

["eins", "zwei"]

...auf das beliebig zugreifen kannst.

Wie kann ich in BlueJ einen String, den ich beim erstellen des Objektes festgelegt habe wieder ändern?

Habe es schon mit der set-Methode probiert, jedoch weiß ich nicht genau wie ich das machen soll. Fogendes habe ich mir gedacht:

private String x //x ist zuerst ""

public void setX(String neu) { neu = x; }

wenn ich diese methode ausführe ändert sich aber nichts, hat jemand einen rat?

Danke im Voraus, LG

...zur Frage

[JAVA] "Constructor Scanner is undefined?

java.util.Scanner;
import static java.lang.System.out;

public class Durchschnittsberechner {
public static void main(String[] args){
    
    Scanner scanner = new Scanner();                    //Fehler hier!
    out.println("Geben Sie bitte 5 Zahlen ein!");
    
}

}

Fehlermeldung:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The constructor Scanner() is undefined at Durchschnittsberechner.main(Durchschnittsberechner.java:6)

...zur Frage

IOTools Java?

Guten Abend,

Ich habe mal wieder eine Frage über Java.

Ich habe ein Programm mit der main-Methode erstellt, einen String.

Dieses:

public class Hello {
  public static void main(String[] args) {
    String name = "Bsp";
    String x = name;
    System.out.println("Hallo " + x + "!");
  }
}

Diesen soll ich jetzt so umändern, dass anstelle der direkten Zuweisung meines Namens, die Variable mit Hilfe der Methode IOTools.readLine den Wert belegt.

Den Anfang habe ich schon gemacht:

import Prog1Tools.IOTools;

public class Hello {
  public static void main(String[] args) {
    String name = IOTools.readLine();

Jedoch weiß ich nicht weiter. Dokumentationen lesen bringt mir da auch nicht viel, leider.

Ich hoffe ich bekomme hier Hilfe.

LG

...zur Frage

Methode einer anderen Klasse ausführen

Hey leute,

Ich arbeite an einem java projekt und hänge im endspurt fest -.- Ich habe in meinem Programm 3 Klassen,

1. public class foyer {

public static void main (String[] args) {

} }

das ist quasi eine begrüßung, die einen dann zwischen den zwei weiteren klassen auswählen lassen soll.

2.

public class BMI {

   public void BMI ( String args[] ) {

} }

diese Klasse ist die eine, die man über die Klasse foyer aufrufen können soll

3.

public class TR {

public void TR ( ) {

} }

die ist die andere Klasse und ihre methode, die über foyer aufgerufen werden soll

der code in der Klasse foyer sieht so aus:

import java.util.Scanner; public class foyer {

public static void main (String[] args) {
    int auswahl = 0;
    BMI bmirechner = new BMI();
    TR taschenrechner  = new TR();
    Scanner scan = new Scanner(System.in);

    System.out.println("Herzlich Wilkommen in meinem ersten Java Programm.");
    System.out.println("");
    System.out.println("Wenn Sie den BMI-Rechner verwenden wollen, geben sie eine 1 ein.");
    System.out.println("Wenn Sie den Taschenrechner verwenden wollen, geben sie eine 2 ein.");

    String input = scan.nextLine();
    auswahl = Integer.valueOf( input ).intValue();

    if("1".equals( auswahl ) ) {

        ????
    }

    if("2".equals( auswahl ) ) {

        ????   

    }

}

}

an den Stellen mit den Fragezeichen sollen die Befehle zum Wechseln auf die jeweilige Klasse stehen.

Kann mir da vlt. jemand helfen?

Danke, Gruß PooBucket

...zur Frage

Hintergrundbild in JOptionPane.showInputDialog?

import javax.swing.JOptionPane;

public class Authenticator3 {
public static void main(String[] args) {
    
    String Nutzername = JOptionPane.showInputDialog("Nutzername:");
    String Passwort = JOptionPane.showInputDialog("Passwort:");
    
    
    if (Nutzername.equals("Stefan") &&
            Passwort.equals("Lena")) {
        JOptionPane.showMessageDialog(null, "Sie erhalten Zugang!");
    }
    
    else{
        JOptionPane.showMessageDialog(null, "Sie erhalten keinen Zugang!");
    }
}
}

Wie kann ich jetzt ein Bild in den Hintergrund stellen?

...zur Frage

Java: Was ist an meinen Code falsch: Cannot make a static reference to the non-static method ....?

Ich bekomme die Fehlermeldung:

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
      Cannot make a static reference to the non-static method addRezept(String) from the type Testclasse at Testclasse.main(Testclasse.java:16

Dabei sehen die Klassen so aus:

Testclasse:

import java.util.*;

public class Testclasse {     private HashMap<String, Rezept> rezeptList = new HashMap <String,Rezept>();          void addRezept(String name)     {         rezeptList.put(name, new Rezept(name));     }     

    public static void main (String[] args)
    {
        addRezept("Test"); <-----HIER IST DER FEHLER
    }
}

und Rezept:

public class Rezept
{
    private String rezeptname;
    public Rezept(String name)
    {
        rezeptname=name;
    }
}

Ich verstehe nicht, was an diesen Code falsch ist. Vielleicht kann mir ja einer helfen den Fehler zu finden. Ich wäre auch für eine kurze Erklärung, Korrektur, beziehungsweise für einen kurzen Literaturhinweis für das Problem dankbar.

Schon mal vielen Dank für die Hife.

...zur Frage

Was möchtest Du wissen?