Respuestas:
Son tres cosas completamente diferentes:
public
significa que el método es visible y se puede llamar 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
, escribiría en int
lugar de void
.
La combinación de estos tres se ve más comúnmente en el main
método que incluirán la mayoría de los tutoriales.
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á asociado 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".
La palabra clave pública es un especificador de acceso, que permite al programador controlar la visibilidad de los miembros de la clase. Cuando un miembro de la clase está precedido por público, 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 miembro sea utilizado por código definido fuera de su clase).
En este caso, main( )
debe declararse como público, ya que debe llamarse por código fuera de su clase cuando se inicia el programa.
La palabra clave static permite main( )
ser llamada sin tener que instanciar una instancia particular de la clase. Esto es necesario ya que main( )
el intérprete de Java lo llama antes de que se cree ningún objeto.
La palabra clave void simplemente le dice al compilador que main( )
no devuelve un valor. Como verá, los métodos también pueden devolver valores.
Esto significa que:
public
- se puede llamar desde cualquier lugarstatic
- no tiene ningún estado de objeto, por lo que puede llamarlo sin instanciar un objetovoid
- no devuelve nadaSe podría pensar que la falta de un retorno significa que no está haciendo mucho, pero podría estar guardando cosas en la base de datos, por ejemplo.
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 antes de poder llamar a la función.
void
significa que la función no devuelve un valor.
Como solo estás aprendiendo, no te preocupes demasiado por los dos primeros hasta que aprendas sobre las clases, y el tercero no importará mucho hasta que comiences a escribir funciones (aparte de la principal).
El mejor consejo que recibí cuando aprendí a programar, y que te paso, no te preocupes por los pequeños detalles que no entiendes de inmediato. Obtenga una visión general de los fundamentos, luego regrese y preocúpese por los detalles. La razón es que tiene 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. Entonces, por el momento, simplemente acepta que así es como se hace, y sigue adelante. Los entenderás en breve.
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.
`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 generalmente no va a devolver un valor del nivel superior (clase). (a veces querrá devolver un valor que no sea NULL
tan nulo, no siempre se puede usar, 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: soy un novato, así que si esta respuesta es incorrecta de alguna manera, no me cuelgue. De día soy un reclutador de tecnología, no un desarrollador; La codificación es mi pasatiempo. Además, siempre estoy abierto a críticas constructivas y me encanta aprender, así que no dude en señalar cualquier error.
public
significa que puede acceder a la clase desde cualquier lugar de la clase / objeto o fuera del paquete o clasestatic
significa constante en el que el bloque de enunciado se usa solo 1 vezvoid
significa que no hay tipo de retornoPublic
- significa que la clase (programa) está disponible para su uso por 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 a 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 nulo en la declaración.
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. Debido al uso de una static
palabra clave main()
es el primer método que se invoca ...
static
no necesita ningún objeto para instanciar ... por lo tanto, main( )
el intérprete de Java lo llama antes de que se cree ningún objeto.
public
,static
,private
, etc.) entonces el tipo de retorno (void
en este caso).