¿Qué significa ‘vacío estático público’ en Java?

5 minutos de lectura

avatar de usuario
David

Que hace public static void significa en Java?

Estoy en proceso de aprendizaje. En todos los ejemplos del libro en el que estoy trabajando public static void viene antes de cualquier método que se esté usando o creando. ¿Qué significa esto?

avatar de usuario
marca byers

Son tres cosas completamente diferentes:

public significa que el método es visible y puede ser llamado desde otros objetos de otros tipos. Otras alternativas son private, protected, package y package-private. Ver aquí para más detalles.

static significa que el método está asociado con la clase, no con una instancia específica (objeto) de esa clase. Esto significa que puede llamar a un método estático sin crear un objeto de la clase.

void significa que el método no tiene valor de retorno. Si el método devuelve un int tu escribirias int en vez de void.

La combinación de los tres se ve más comúnmente en el main método que incluirán la mayoría de los tutoriales.

  • Dado que el interrogador aún está aprendiendo: el orden de estas palabras clave también es importante. Todos los modificadores primero (public, static, privateetc.), luego el tipo de retorno (void en este caso).

    – Pindatjuh

    5 de marzo de 2010 a las 21:34


  • @markbyres ok, entiendo tu respuesta, sé que el método principal debe ser estático, pero no tengo idea de por qué es público. hay alguna razon en especifico para eso??

    – hardik

    16 de marzo de 2012 a las 5:17


  • el entorno de tiempo de ejecución de Java debe llamar al método principal para iniciar su aplicación. no podía hacer eso cuando era privado.

    – Felipe

    4 sep 2012 a las 20:44

Las tres palabras tienen significados ortogonales.

public significa que el método será visible desde las clases en otros paquetes.

static significa que el método no está adjunto a una instancia específica y no tiene “this“. Es más o menos una función.

void es el tipo de retorno. Significa “este método no devuelve nada”.

avatar de usuario
utsav

los público palabra clave es un especificador de acceso, que permite al programador controlar la visibilidad de los miembros de la clase. Cuando un miembro de clase está precedido por public, entonces se puede acceder a ese miembro mediante un código fuera de la clase en la que se declara. (Lo contrario de público es privado, lo que evita que un código definido fuera de su clase use un miembro).

En este caso, main( ) debe declararse como public, ya que debe ser llamado por código fuera de su clase cuando se inicia el programa.

la palabra clave estático permite main( ) para ser llamado sin tener que instanciar una instancia particular de la clase. Esto es necesario ya que main( ) es llamado por el intérprete de Java antes de que se creen los objetos.

la palabra clave vacío simplemente le dice al compilador que main( ) no devuelve un valor. Como verá, los métodos también pueden devolver valores.

avatar de usuario
pablo tomblin

Esto significa que:

  • public – se puede llamar desde cualquier lugar
  • static – no tiene ningún estado de objeto, por lo que puede llamarlo sin instanciar un objeto
  • void – no devuelve nada

Uno pensaría que la falta de devolución significa que no está haciendo mucho, pero podría estar guardando cosas en la base de datos, por ejemplo.

avatar de usuario
Aarón

Significa tres cosas.

Primero public significa que cualquier otro objeto puede acceder a él.

static significa que la clase en la que reside no tiene que ser instanciada primero antes de que se pueda llamar a la función.

void significa que la función no devuelve un valor.

Ya que solo está aprendiendo, no se preocupe demasiado por los dos primeros hasta que aprenda sobre las clases, y el tercero no importará mucho hasta que comience a escribir funciones (aparte de main).

El mejor consejo que recibí cuando estaba aprendiendo a programar, y que les transmito, es que no se preocupen por los pequeños detalles que no entienden de inmediato. Obtenga una descripción general amplia de los fundamentos, luego regrese y preocúpese por los detalles. La razón es que tienes que usar algunas cosas (como public static void) en sus primeros programas que realmente no se pueden explicar bien sin enseñarle primero un montón de otras cosas. Así que, por el momento, acepta que así es como se hace y sigue adelante. Los comprenderás en breve.

avatar de usuario
Gilles ‘SO- deja de ser malvado’

Teniendo en cuenta la típica clase de nivel superior. Solo se pueden usar modificadores de acceso público y sin modificador en el nivel superior, por lo que verá público o no verá ningún modificador de acceso en absoluto.

`static“ se usa porque es posible que no tenga la necesidad de crear un objeto real en el nivel superior (pero a veces querrá hacerlo, por lo que es posible que no siempre vea / use static. Hay otras razones por las que no incluiría static también, pero este es el típico en el nivel superior).

void se usa porque normalmente no va a devolver un valor del nivel superior (clase). (a veces querrá devolver un valor que no sea NULL por lo tanto, es posible que void no siempre se use, especialmente en el caso de que haya declarado, inicializado un objeto en el nivel superior al que está asignando algún valor).

Descargo de responsabilidad:
Yo mismo soy un novato, así que si esta respuesta es incorrecta de alguna manera, no me cuelgue. Durante el día soy un reclutador de tecnología, no un desarrollador; La codificación es mi hobby. Además, siempre estoy abierto a las críticas constructivas y me encanta aprender, así que siéntete libre de señalar cualquier error.

avatar de usuario
usuario3344876

Public – significa que la clase (programa) está disponible para que la use cualquier otra clase.

Static – crea una clase. También se puede aplicar a variables y métodos, convirtiéndolos en métodos/variables de clase en lugar de solo locales para una instancia particular de la clase.

Void – esto significa que no se devuelve ningún producto cuando la clase completa el procesamiento. Compare esto con las clases auxiliares que proporcionan un valor de retorno a la clase principal, estas funcionan como funciones; estos no tienen nulidad en la declaración.

¿Ha sido útil esta solución?