Studio da poco java e in ogni prg che finora ho incontrato c'è sempre questa riga :
--> public static void main( String args[] ) <--
a cosa serve "String args[]"?
Studio da poco java e in ogni prg che finora ho incontrato c'è sempre questa riga :
--> public static void main( String args[] ) <--
a cosa serve "String args[]"?
per ricevere stringhe dalla barra dei comandi dell'ms-dos
es quando mandi in esecuzione il prog dal prompt:
java NomeClasse string0
string0 sara contenuto in args[0] puoi mettere anche piu stringhe
non ho capito...in pratica avverte che nel prg saranno presenti stringhe anche se alla fine ci sono solo variabili int?Originariamente inviato da Maveric
per ricevere stringhe dalla barra dei comandi dell'ms-dos
es quando mandi in esecuzione il prog dal prompt:
java NomeClasse string0
string0 sara contenuto in args[0] puoi mettere anche piu stringhe
inoltre...al posto di string args[] posso scrivere altre cose?
no.... vediamo se è + chiaro così
il metodo
public static main
è l'entry point del tuo programma java. deve essere dichiarato obbligatoriamente con un parametro di tipo array di stringhe. Esempio
come vedi dall'esempio il nome di tale array nn deve essere necessariamente args.codice:public static main(String[] parametri)
Questa variabile contiene tutti i parametri che tu passi a riga di comando quando richiami il programma. Esempio se tu scrivi la classe
e poi esegui tale classe a riga di comando così'codice:public class Prova{ public static main(String[] parametri){ System.out.println(parametri[0]); } }
il tuo programma farà un semplice display della stringa "ciaoooooo". Se però richiami il tutto senza argomenticodice:java Prova ciaoooooo
ti verrà restituito un'errore runtime, in quanto nel metodo main si cercherà di accedere all'elemento di indice 0 di un array vuoto.codice:java Prova
aspè..forse ho capito!Originariamente inviato da Popper
no.... vediamo se è + chiaro così
il metodo
public static main
è l'entry point del tuo programma java. deve essere dichiarato obbligatoriamente con un parametro di tipo array di stringhe. Esempio
come vedi dall'esempio il nome di tale array nn deve essere necessariamente args.codice:public static main(String[] parametri)
Questa variabile contiene tutti i parametri che tu passi a riga di comando quando richiami il programma. Esempio se tu scrivi la classe
e poi esegui tale classe a riga di comando così'codice:public class Prova{ public static main(String[] parametri){ System.out.println(parametri[0]); } }
il tuo programma farà un semplice display della stringa "ciaoooooo". Se però richiami il tutto senza argomenticodice:java Prova ciaoooooo
ti verrà restituito un'errore runtime, in quanto nel metodo main si cercherà di accedere all'elemento di indice 0 di un array vuoto.codice:java Prova
In pratica con args[] diciamo che il programma chiederà stringhe all'utente invece di passarle direttamente ,senza chiedere all'utente, quando richiami il programma con java? :master:
No... il parametro (che è un array di stringhe) serve a contenere EVENTUALI parametri passati al programma. Tu puoi passarne o meno, ma se li passi, questi verranno memorizzati in questo array. Se non ne passi, questo array sarà vuoto.
Il fatto che sia obbligatorio metterlo questo parametro (anche se il tuo programma non ne fa uso) è perchè così è specificato nel prototipo del main.
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
esempio stupido: supponiamo che notepad.exe sia scritto in java; a riga di comando puoi richiamare
notepad
o
notepad nomefile
nel primo caso l'array dei parametri sarà vuoto, nel secondo conterrà una stringa con il nome del file.
Spero di non averti fatto ancora + casino
ok..fin qui mi sembra tutto chiaro!
un ultima cosa...ci sono alternative a String args[] ?
ad esempio int args[] esiste?o float []?o ect...ect..
No: non ci sono alternative. Il prototipo del main vuole un array di stringhe.
Tu, al programma, puoi passare qualsiasi cosa (stringhe, numeri, caratteri), per avere il corrispondente tipo ti basta un casting attraverso le varie classi wrapper.
Per esempio, se come primo parametro hai passato un intero (e sai che è un intero) puoi usare questa istruzione per avere l'intero nella variabile 'numero':
numero = Integer.parseInt(args[0]);
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Originariamente inviato da LeleFT
No: non ci sono alternative. Il prototipo del main vuole un array di stringhe.
Tu, al programma, puoi passare qualsiasi cosa (stringhe, numeri, caratteri), per avere il corrispondente tipo ti basta un casting attraverso le varie classi wrapper.
Per esempio, se come primo parametro hai passato un intero (e sai che è un intero) puoi usare questa istruzione per avere l'intero nella variabile 'numero':
numero = Integer.parseInt(args[0]);
Ciao.
ok , grazie per la spiegazione!