Was ist die Bedeutung von Public static void main string args in Java?

... komplette Frage anzeigen

4 Antworten

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

public ist das Zugriffsrecht der Methode. Wie am Wort schon zu erkennen ist, ist die Methode öffentlich, kann also von überall aufgerufen werden.

static ist der sog. Modifizierer der Methode. Es besagt in dem Falle, dass die Methode statisch ist und dementsprechend auch aufgerufen werden kann, wenn noch kein Objekt der Klasse erzeugt wurde. Das ist bei so einer Methode besonders wichtig, weil dadurch ja erst das Java-Programm "in Schwung" kommt und davor noch praktisch keine Klasse existiert. Die main-Methode hängt also an keinem Objekt, sondern kann auch einfach so ohne Weiteres aufgerufen werden.

void ist der sog. Rückgabetyp der Methode. Dieser gibt an, was die Methode an den Aufrufer zurückgibt, das kann zum Beispiel ein Wert sein, das von der Methode berechnet wurde. void bedeutet so viel wie "nichts" und besagt ganz einfach, dass die Methode nichts zurückgibt (sondern vielleicht einfach nur andere Methoden ausführt).

main ist der Name der Methode. Syntaxtechnisch könnte dort auch jeder mögliche andere Name stehen - sollte aber nicht, da die Methode anderswo mit dem Namen aufgerufen wird. Prinzipiell wäre das aber möglich.

String[] args ist der Übergabeparameter der Methode. Wenn eine Methode aufgerufen wird, können ihr Werte übergeben werden, die anschließend von ihr verwertet werden (zum Beispiel könnte man einer Methode addition(...) zwei Zahlenwerte summand1 und summand2 übergeben, die von der Methode addiert werden). Dabei ist String[] der Datentyp und args der Name des Übergabeparameters. String[] ist ein Array (ein Speicher) von mehreren Strings, also Zeichenketten. Im Array String[] args sind also mehrere Zeichenketten zusammen gespeichert und werden in diesem Array praktisch als "Paket" übergeben.

Eine solche Struktur findest Du bei jeder Methode in Java, zuerst kommt das Zugriffsrecht (optional), dann der/die Modifizierer (optional), dann der Rückgabetyp (notwendig), dann der Name der Methode (notwendig) und anschließend in Klammern der/die Übergabeparameter (optional).

Weitere Zugriffsrechte wären private oder protected oder auch package-private, wenn gar kein Zugriffsrecht dabei steht.

Mögliche Modifizierer wären außer static noch final oder abstract.

Ein Rückgabetyp kann prinzipiell fast alles sein, Datentypen wie int, double, short, komplexe Datentypen wie Integer, Double, String oder auch erzeugte Objekte.

Selbiges gilt für den Übergabeparameter - Du kannst einer Methode fast alles übergeben.

LG Willibergi

Antwort bewerten Vielen Dank für Deine Bewertung

public : Du kannst von jedem Ort im Programmcode auf die Funktion zugreifen

static: Die Methode ist statisch. Dh sie kann auch aufgerufen werden, ohne dass von der Klasse ein Objekt existiert. Muss sie ja auch, da du die Objekte erst in dieser Methode erstellst.

void: ein "leerer" Datentyp. Bei Methodenköpfen signalisiert er, dass die Methode keinen Rückgabewert hat

main ist einfach nur der Name und in dieser Kombination (also public static void main(String[] args)) ein Zeichen für den Compiler, dass das Programm hier starten soll.

String ist die Bezeichnung für den Typen, der in diesem Fall  der Methode übergeben wird. String ist ein Array von Characters und repräsentiert Text (aber du kannst auch Zahlen in einen Text speichern oder beides mischen usw). Die Main-Methode bekommt aber ein String-ARRAY übergeben (String[])

args ist hierbei der Variablenname des String-Arrays - hiermit kannst du in der Methode darauf zugreifen.

Antwort bewerten Vielen Dank für Deine Bewertung

Teile der genannten Begriffe in einer Kombination bilden nicht den Start eines Programmes, sondern den Start einer Methode, die fälschlicherweise auch oft "Funktion" genannt wird.

Du beginnst z.B. so eine Methode:

public void zeichne(){

....

}

Public heißt öffentlich. Der Zugriff ist also grundsätzlich erlaubt.

Void bedeutet einfach, dass die Methode keinen Rückgabewert liefert. Kommt also an jede Methode, die nicht irgendeinen Wert zurückgeben soll.

String ist ein Datentyp. Es gibt u.a. folgende Datentypen in Java:

  • String = Zeichenkette
  • int = Integer
  • double 
  • boolean = logischer Wert (true / false)

Mehr dazu findest du z.B. hier:

https://de.wikibooks.org/wiki/Java\_Standard:_Primitive_Datentypen

Du kannst aber auch so eine Methode starten:

public class ZeichenTest {
public static void main(String[] args) {
char buchstabe1 = 'A';
char buchstabe2 = 65;
buchstabe1 += 1;
System.out.println(buchstabe1);
System.out.println(buchstabe2);
}
}


Dieses Programm erzeugt die Ausgabe "B A". Addiert man zu einem Zeichen eine 1, dann ist damit das nächste Zeichen gemeint.


Mehr dazu findest du wie gesagt unter dem Link.

_______________________________________________________


Liebe Grüße
TechnikSpezi

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von blackoutX2
28.06.2017, 19:29

ok danke aber ich verstehe das mit public nicht: es heißt übersetzt öffentlich - aber WAS genau meint man mit " eine öffentliche Methode, wo jeder Zugriff hat" Ich verstehe nicht, was mit dem Zugriff gemeint ist

0
Kommentar von blackoutX2
28.06.2017, 19:30

und noch ne frage :D : wenn Void einfach nur aussagt, dass kein Rückgabewert kommt (was auch immer das is xd) dann könnte man ja eine Methode auch so erstellen oder? : test(); oder eben public test();

0
Kommentar von blackoutX2
28.06.2017, 19:46

vielen dank :)

1

Die korrekte Schreibweise ist:

public static void main(String[] args)

public = Die Methode ist öffentlich und in der Schnittstelle der Klasse sichtbar.

static = Die Methode ist statisch.Das bedeutet, dass sie, anders als non-static-Methoden (also "normale Methoden"^), an der Klasse selbst aufgerufen wird und nicht an Objekten der Klasse. Somit ist sie quasi "immer erreichbar". So eine Methode wird auch Klassenmethode genannt.

void = Die Methode liefert nichts zurück.

main = Name der Methode.

String[] args = Die Methode bekommt als Parameter ein Array von Strings. Im Block des Methodenrumpfes wird dieser als "args" referenziert (Abkürzung für Arguments).

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?