SoloCodigo

Programación General => Java => Mensaje iniciado por: SFRJ en Viernes 6 de Febrero de 2009, 14:19

Título: Pregunta algo estupida a estas alturas :)
Publicado por: SFRJ en Viernes 6 de Febrero de 2009, 14:19
Bueno como el titulo del tema lo dice puede parecer que la pregunta es algo tonta para ser mi segundo ano ya estudiando y aprendiendo java pero he de hacerla porque no consigo encontrar una explicacion completa en el google.
La pregunta es si podrian ustedes descrivir con sus palabras exactamente lo que significa: public static void main(String args[]) bueno pues mi problema es el siguiente y esque me atasco en lo de String [] args que esque no lo acabo de entender para que sirve porfavor aclarenme mi duda y corrijanme si me equivoco.

public --> modificador de acceso que indica que el metodo es accesible desde cualquier parte del codigo.
static --> palabra reservada al lenguaje java que facilita que los metodos o varijables que la utilicen, no tengan necesidad de crear un objeto de clase para poder ser llamados.
void --> indica que el metodo devuelve alla donde se llamo un objeto de tipo void, que simboliza que nos se ha devuelto nada.
main-->nombre del metodo, su identificador, la maquina virtual de java es lo primero que busca para poder interpretar un programa.
(String [] args) -->son los parametros del metodo , en ellos se indica que este metodo necesita un array de tipo String al que se le da el nombre args. He aqui mi gran dilema, y esque no entiendo para que es ese String[] args y que se hace con el profavor ayuda.

Porfavor si alguien que supiese exactamente la definicion de cada una da las partes de este metodo fuese tan amable de aclarmelo.
Un saludo a todos.
Título: Re: Pregunta algo estupida a estas alturas :)
Publicado por: arielb en Viernes 6 de Febrero de 2009, 15:44
Hola, tranquilo creo que a todos en algún momento nos ha pasado que nos encontramos con cosas que la sabemos usar muy bien, pero al momento de explicar nos quedamos en el aire.
Bueno te puedo decir que está implementado al igual que c++ para pasar argumentos al momento de ejecutarlos por ejemplo en Dos

Código: Java
  1. java MiPrograma Hoy es un día bien chevere
  2.  

Código: Java
  1.  
  2. class MiPrograma {
  3.     public static void main( String args[] ) {
  4.         int i,fin ;
  5.         fin = args.length;
  6.         for( i=0 ; i < fin ; i++ )
  7.             System.out.println("Argumento "+ i+":  "+ args[i] );
  8.         }
  9.     }  
  10. } 
  11.  

El resultado sería
Título: Re: Pregunta algo estupida a estas alturas :)
Publicado por: shadow_rev en Viernes 6 de Febrero de 2009, 18:12
Cita de: "juez"
Bueno te puedo decir que está implementado al igual que c++ para pasar argumentos al momento de ejecutarlos por ejemplo en Dos
Aclaro que no es exactamente igual en C++, sólo en esencia; mientras que en C++ tienes que especificar cuantos son los parámetros que se le pasan al método principal, Java es más flexible al poner un array de tipo String en vez de poner varios parámetros.

En otras palabras, así es en C++ (toma 2 parámetros en la línea de comandos, el resto los ignora):
Código: C
  1. int main(char arg1, char arg2) {
  2. // ...
  3. }
  4.  
Título: Re: Pregunta algo estupida a estas alturas :)
Publicado por: SFRJ en Sábado 7 de Febrero de 2009, 15:13
Creo que lo he entendido completamente.
Entonces, solo se utiliza, cuando ejecuto mi programa desde la linea de comando, utilizando el comando java.

Aha pero la frase que introdujiste era un String y lo que se ha echo entonces es transformar este String en un array.
Creo que lo he entendido.
Pero sigo teniendo una pequena duda, yo todavia en 2 anos que llevo estudiando java nunca he introducido argumentos desde la linea de comandos en el metodo main. Mi duda es cuando es necesario utilizar este procedimiento en que casos?
Gracias por la aclaracion :)
Título: Re: Pregunta algo estupida a estas alturas :)
Publicado por: m0skit0 en Domingo 8 de Febrero de 2009, 12:55
Cita de: "SFRJ"
Mi duda es cuando es necesario utilizar este procedimiento en que casos?
Cuando el programa es de consola (no GUI) y puede actuar de varias formas dependiendo de los parámetros que se le pasen. Prácticamente todas las utilidades en consola suelen recibir parámetros para poder ajustar su funcionamiento. Por ejemplo:

Código: Text
  1. C:>dir /?
  2.  
te muestra la ayuda del comando dir de Windows.

Salud