2015-03-26 31 views
5

Non sono sicuro che cosa questo significa, ogni volta prima di scrivere un codice, le persone dicono che questoCosa significa "public static void main args"?

public static void main(String[] args) { 

Cosa vuol dire?

+1

http://docs.oracle.com/javase/tutorial/getStarted/application/index.html –

risposta

0

public -> Specificatore di accesso. Qualsiasi altra classe può accedere a questo metodo.

static -> Il metodo è associato alla classe, non a un'istanza della classe.

void -> Tipo di reso. Il metodo non restituisce nulla.

main(String[] args) -> il nome del metodo è main(). Prende un array di String come argomento. Gli argomenti String[] sono argomenti della riga di comando.

Nota: il metodo main() sopra definito è il punto di ingresso di un programma, se si modifica la firma, il programma potrebbe non essere eseguito.

0
  • Public = Questo metodo è visibile a tutte le altre classi.

  • static = Questo metodo non necessita di un'istanza da eseguire.

  • void = Questo metodo non restituisce nulla.

  • main() = Metodo principale (Primo metodo da eseguire).

  • String[] = Matrice di stringhe.

  • args = Nome matrice.

1

Secondo il Java language specification, l'esecuzione di un programma Java parte dal metodo main(). Un metodo main() dovrebbe seguire la sintassi specifica, può essere spiegato come:

public - specificatore di accesso, dimostra che main() è accessibile a tutte le altre classi.

void - tipo di reso, main() non restituisce nulla.

String args[] - argomenti per il metodo main(), che deve essere un array di tipo stringa.

static - Modificatore di accesso. Un metodo principale dovrebbe sempre essere statico, perché il metodo `main() 'può essere chiamato senza creare un'istanza della classe.

Supponiamo, stiamo eseguendo un programma java di Helloworld.

Durante l'esecuzione del programma, usiamo il comando

java Helloworld. 

Internamente, questo comando viene convertito in

Helloworld.main() 

Facendo main() metodo statico, JVM chiama il metodo main() senza creare un oggetto prima .

15

Ecco una piccola spiegazione dettagliata po 'sul motivo principale metodo è dichiarato come

metodo Main è il punto di ingresso di un programma Java per la Java Virtual Machine (JVM). Diciamo che abbiamo una classe chiamata Sample

class Sample { 
    static void fun() 
    { 
      System.out.println("Hello");  
    } 
} 

class Test { 
     public static void main(String[] args) 
     { 
       Sample.fun(); 
     } 
} 

Questo programma sarà eseguito dopo la compilazione come java Test. Il comando java avvierà la JVM e caricherà la nostra classe Test.java nella memoria. Come principale è il punto di ingresso per il nostro programma, JVM cercherà il metodo principale dichiarato come public, static e void.

Perché il principale deve essere dichiarato pubblico?

main() devono essere dichiarati public perché come sappiamo viene invocato dai JVM ogni volta che si avvia l'esecuzione del programma e JVM non appartiene al nostro pacchetto di programmi.

Per accedere al main fuori dal pacchetto, dobbiamo dichiararlo come public. Se lo dichiariamo come qualcosa di diverso da public mostra uno Run time Error ma non Compilation time error.

Perché principale deve essere dichiarato statico?

main() deve essere dichiarato come statico perché JVM non sa come creare un oggetto di una classe, quindi ha bisogno di un modo standard per accedere al metodo principale che è possibile dichiarando main() come static.

Se un metodo viene dichiarato come static, è possibile chiamare tale metodo all'esterno della classe senza creare un oggetto utilizzando la sintassi ClassName.methodName();.

Quindi, in questo modo JVM può chiamare il nostro metodo principale, come <ClassName>.<Main-Method>

Perché principale deve essere annullato?

main() deve essere dichiarato nullo perché JVM non si aspetta alcun valore da main(). Quindi, deve essere dichiarato come void.

Se viene fornito un altro tipo di reso, si tratta di un RunTimeError, ad esempio NoSuchMethodFoundError.

Perché il main deve avere argomenti di array di stringhe?

main() deve avere argomenti stringa come array, poiché JVM chiama il metodo principale passando argomento della riga di comando. Poiché vengono memorizzati nell'oggetto array di stringhe, vengono passati come argomento a main().

+0

Più 1 per la spiegazione dettagliata! – justcurious

0

In Java il metodo principale deve sempre essere:

esecuzione
public static void main(String args[]) 
  1. Il programma inizia con main() funzione, quindi la funzione main().

  2. Deve essere public in modo che sia accessibile all'ambiente esterno.

  3. Il metodo main() è sempre statica perché, come si sa che l'esecuzione del programma inizia alle main() metodo e non v'è alcuna istanza della classe contenente main() metodo viene avviata. Quindi, poiché il metodo statico può essere eseguito senza necessità di alcuna istanza, viene dichiarato statico.

  4. Java è indipendente dalla piattaforma, quindi è possibile provare a compilare il file java su un sistema e provare a eseguire il file di classe su un altro. L'architettura dei bit di ciascuna macchina può essere diversa, quindi il tipo di restituzione della funzione principale deve sempre essere main().

Spero che questo aiuti.