java - sirve - ¿Qué significa ''public static void main args''?
que significa public static en java (5)
No estoy seguro de lo que esto significa, siempre que antes de escribir un código, la gente dice esto
public static void main(String[] args) {
Qué significa eso?
Aquí hay una explicación un poco detallada sobre por qué el método principal se declara como
public static void main(String[] args)
El método principal es el punto de entrada de un programa Java para la máquina virtual Java (JVM).
Digamos que tenemos una clase llamada
Sample
class Sample {
static void fun()
{
System.out.println("Hello");
}
}
class Test {
public static void main(String[] args)
{
Sample.fun();
}
}
Este programa se ejecutará después de la compilación como
java Test
.
El comando
java
iniciará la JVM y cargará nuestra clase
Test.java
en la memoria.
Como main es el punto de entrada para nuestro programa, JVM buscará el método main que se declare como
public
,
static
y
void
.
¿Por qué main debe ser declarado público?
main()
debe declararse
public
porque, como sabemos, JVM lo invoca cada vez que se inicia la ejecución del programa y JVM no pertenece a nuestro paquete de programas.
Para acceder a main fuera del paquete, debemos declararlo como
public
.
Si lo declaramos como algo que no sea
public
, muestra un
Run time Error
pero no un
Compilation time error
.
¿Por qué main debe declararse estático?
main()
debe declararse como static porque JVM no sabe cómo crear un objeto de una clase, por lo que necesita una forma estándar de acceder al método main que sea posible declarando
main()
como
static
.
Si un método se declara como
static
, podemos llamar a ese método fuera de la clase sin crear un objeto usando la sintaxis
ClassName.methodName();
.
De esta forma, JVM puede llamar a nuestro método principal como
<ClassName>.<Main-Method>
¿Por qué main debe ser declarado vacío?
main()
debe declararse nulo porque JVM no espera ningún valor de
main()
.
Por lo tanto, debe declararse como
void
.
Si se proporciona otro tipo de retorno, es un
RunTimeError
, es decir,
NoSuchMethodFoundError
.
¿Por qué main debe tener argumentos de matriz de cadena?
main(
) debe tener argumentos de cadena como matrices porque JVM llama al método principal pasando el argumento de la línea de comandos.
Como se almacenan en un objeto de matriz de cadena, se pasa como argumento a
main()
.
En Java, su método principal siempre debe ser:
public static void main(String args[])
-
La ejecución del programa comienza con la función
main()
, de ahí la funciónmain()
. -
Debe ser
public
para que sea accesible al entorno exterior. -
El método
main()
siempre es estático porque, como sabes, la ejecución del programa comienza en el métodomain()
y no hay ninguna instancia de la clase que contenga el métodomain()
iniciado. Por lo tanto, como el método estático puede ejecutarse sin necesidad de ninguna instancia, se declara estático. -
Java es independiente de la plataforma, por lo tanto, puede intentar compilar el archivo java en un sistema e intentar ejecutar el archivo de clase en otro. La arquitectura de bits de cada máquina puede ser diferente, por lo tanto, el tipo de retorno de la función principal siempre debe ser
main()
.
Espero que esto ayude.
Según la especificación del lenguaje Java, la ejecución de un programa Java comienza desde el método main (). Un método main () debe seguir la sintaxis específica, se puede explicar como:
public static void main(String[] args)
public
: especificador de acceso, muestra que
main()
es accesible para todas las demás clases.
void
: tipo de retorno,
main()
no devuelve nada.
String args[]
: argumentos del método
main()
, que debería ser una matriz de tipo string.
static
: modificador de acceso.
Un método principal siempre debe ser estático, porque se puede llamar al método `main () ''sin crear una instancia de la clase.
Supongamos que estamos ejecutando un programa Java de Helloworld.
Mientras ejecutamos el programa, usamos el comando
java Helloworld.
Internamente, este comando se convierte en
Helloworld.main()
Al hacer que el método
main()
estático, JVM llama al método
main()
sin crear primero un objeto.
public
-> Especificador de acceso.
Cualquier otra clase puede acceder a este método.
static
-> El método está vinculado a la clase, no a una instancia de la clase.
void
-> Tipo de retorno.
El método no devuelve nada.
main(String[] args)
-> el nombre del método es
main()
.
Se necesita una serie de cadenas como argumento.
Los argumentos de
String[]
son argumentos de línea de comando.
Nota
: El método
main()
definido anteriormente es el punto de entrada de un programa; si cambia la firma, es posible que su programa no se ejecute.
-
Public
= Este método es visible para todas las demás clases. -
static
= Este método no necesita una instancia para ejecutarse. -
void
= Este método no devuelve nada. -
main()
= Método principal (primer método para ejecutar). -
String[]
= Matriz de cadenas. -
args
= nombre de la matriz.