# public static void main(String[] args)



## cyberkuh (17. Aug 2008)

Hallo,

ich wollte mal eine wichtige Frage stellen:
Was hat es mit "public static void main(String[] args)" auf sich?


Ich habe gegooglet und in meinem Buch über Java nachgelesen und überall bekomme ich andere Informationen.
Da ich selbst mit Java noch nicht sehr vertraut bin weiß ich nun nicht, was stimmt und was nicht.

Es wäre echt super, wenn mir jemand eine kurze Definition geben könnte...was das genau ist, wozu man es braucht und wann man es immer verwenden muss.


Vielen Dank und liebe Grüße
cyberku


----------



## SlaterB (17. Aug 2008)

es wäre echt super, wenn du diese 'andere Informationen' hier zusammenstellen und etwaige Unterschiede beschreiben könntest,
vielleicht interpretierst du das ja nur falsch,

kurze Definition:
Eintrittspunkt in ein Programm, Programmstart,
args ist ein Array der übergebenen Parameter


----------



## cyberkuh (17. Aug 2008)

allein schon die Tatsache, dass bei einigen Seiten steht man müsste es jeder Klasse einzeln benutzen, in meinem Buch steht aber das Gegenteil.

Außerdem wird es überall aufgeführt...was aber das "String[]" und das "args" genau bedeutet, ob man es durch andere bestimmte Sachen erstezen kann oder ob man es überhaupt braucht wird nirgendwo erklärt.


----------



## SlaterB (17. Aug 2008)

> man müsste es jeder Klasse einzeln benutzen

der Punkt wurde ja erst vor kurzem in einem anderen Topic geklärt, das war doch wahrscheinlich von dir?

wie damals bleit nur zu fragen, wo du das her hast,
ansonsten: Quatsch, fertig

-----

> wird nirgendwo erklärt.

ist schon was anderes als 'andere Informationen' im Sinne von widersprüchlichen Informationen
und spziell zu deinen Fragen: das passt thematisch einfach nicht zusammen,
für String und Arrays gibt es eigene Kapitel,
wenn die main vorher genutzt wird, dann kann man da kaum mehr ranschreiben als 'wird später erklärt',
wenn die main nach dem String und Array-Kapitel genutzt wird, dann sollte das klar sein,

-----
passt nicht ganz, aber ungefähres Gleichnis:
in einem (bzw. manchen) Buch über Autos findet man auch nur Daten wie Motorleistung, Gewicht und Preis,
da kann man nicht jede Schraube und Blechsorte einzeln diskutieren, entweder es interessiert nicht oder wird in anderen Büchern erklärt


----------



## SchonWiederFred (17. Aug 2008)

cyberkuh hat gesagt.:
			
		

> Was hat es mit "public static void main(String[] args)" auf sich?


main ist der Einstiegspunkt in Dein Programm. Irgendwo muss es ja losgehen.

Die Methode muss public sein, weil eine unsichtbare Methode schlecht aufgerufen werden könnte.

Sie muss static sein, da es zu Beginn noch keine Objekte von der Klasse geben kann (wer hätte ein solches Objekt auch erstellen sollen?).

Sie ist void, weil sie nichts zurückliefert... das ist in anderen Programmiersprachen wie C und C++ nicht so.

args ist ein Array von Referenzen auf Strings, welches die Kommandozeilenparameter enthält. Starte Dein Programm z.B. mal mit

```
c:\>java MeinProgramm Milch Eier Salz Pfeffer
```
Dann ist args ein Array von 4 Referenzen auf Strings sein. Beispielprogramm:

```
public class MeinProgramm
{
	public static void main(String[] args)
	{
		System.out.println("Kommandozeilenparameter:");
		for (String a : args)
		{
			System.out.println(a);
		}
	}
}
```


----------



## Gast (27. Aug 2008)

HILFE??? bin nur dummer bwl'er...


----------



## Schandro (27. Aug 2008)

... wer bist du und was ist deine Frage? Falls du der Threadersteller bist un dir die ganzen antworten zu kompliziert waren:


public static void main(String[] args){

// das was innerhalb dieser beiden exkigen Klammern steht wird ausgeführt, wenn das Programm gestartet wird, und zwar der Reihe nach     

} 


diese 
public static void main(String[] args) - Methode umschließt also einfach alle Anweisungen, die beim Programmstart ausgeführt werden sollen.


----------

