2009-06-30 16 views
4

ich Java lerne, Theres eine Sache, die ich nicht verstehe ..Java public static main()

in der Hauptroutine:

public static void main(String[] args) { 

Ich glaube, ich dies ziemlich verstehen, in der Sprache ich weiß, ich denke, es so sein würde:

public static function main(args:String):void { 

Das erste, was ich nicht verstehe ist, was sind die zwei Klammern [] in String []? Auch die zweite Sache, die ich mich wundere, ist, wenn dies die erste Funktion ist, die aufgerufen wird (und von etwas außerhalb des Programms aufgerufen wird), wird dort jemals tatsächlich ein Parameter übergeben?

Danke.

Antwort

13

Die Argumente zu main sind die Optionen, die Sie über die Befehlszeile an Java übergeben, die als Array übergeben wird. So zum Beispiel:

java MyProgram foo bar zoo 

drei Argumente übernimmt, nämlich foo, eine Bar und Zoo

foo ist args [0], bar ist args [1] und der Zoo ist args [2].

+0

Dank dieser beantwortet meine Frage aber wirft 1 mehr Ich frage mich, ob jemand für mich antworten kann. Wenn Sie Arrays wie String [] und int [] oder was auch immer definieren können, gibt es noch eine formale Array-Klasse? das könnte verschiedene Arten von Daten enthalten ... Ich gehe davon aus, dass Sie nur ein Array auf diese Weise definieren, wenn Sie angeben möchten, dass es nur diesen bestimmten Datentyp enthalten kann? Vielen Dank. –

+0

Sie können Sammlungen und Vektoren dafür verwenden – blockhead

+1

@John Isaacks "gibt es noch eine formale Array-Klasse, die verschiedene Arten von Daten enthalten könnte": Nun ein Objekt [] wird alle Arten von Referenzen enthalten (weil alle Referenztypen Subtypen von sind) Objekt). Referenztypen und primitive Typen sind in Java getrennt, daher gibt es keinen Supertyp für alle Typen, aber primitive Typen können in Referenztypen eingereiht werden. – newacct

1

Die Klammern bedeuten, dass es sich um eine Reihe von Strings handelt. Und es kann Parameter geben, z.B. von der Befehlszeile aus, wenn Sie Ihre Anwendung starten.

0

Es bedeutet, dass Sie eine Reihe von Strings erhalten. Sie können über die Befehlszeile übergeben werden

5

Klammern bedeuten array. Z.B. String[] ist ein Array von Strings. Die main()-Funktion ist die erste in Ihrem Programm aufgerufene Funktion. Es wird von der JVM aufgerufen.

Die Werte in String[] args sind die Parameter, die in der Befehlszeile übergeben werden.

Wenn Sie ein Java-Programm (Hauptklasse: FooBar in Paket foo.bar) nennen wie folgt aus:

java foo.bar.FooBar foo bar buz 

dann, args mögen, wenn Sie es so gebaut:

String[] args = new String[3]; 
args[0] = "foo"; 
args[1] = "bar"; 
args[2] = "buz"; 

Das heißt möglicherweise lesenswert: A Closer Look at the "Hello World" Application

0

[] steht für Array zum Beispiel String x = "so ich Wert "; String [] x = {"Wert 1", "Wert 2", "Wert 3"};

Also im zweiten Fall x [0] ergibt "Wert 1". Es ist im Grunde eine Reihe von Strings. Zweiter Teil ist, wer wird die Funktion aufrufen? Nun, diese Methodensignatur ist die Eintragssignatur, und wenn Sie versuchen, eine Klasse mit einem Java-Programm aufzurufen, wird nach dieser Funktion gesucht, um die Ausführung zu starten. wenn es nicht findet; Es wird nur einen Fehler ausgeben.

Wer wird die Variablen an String [] Array übergeben? java someProgram Wert1 Wert2 Wert3

füllt das Array automatisch mit den entsprechenden drei Werten.Im Grunde genommen werden die Werte aufgefüllt, wenn sie von der Eingabeaufforderung aus ausgeführt werden und Werte als Parameter für den Aufruf übergeben werden.

Hoffe, dass es aufräumt

Verwandte Themen