Respostas:
São três coisas completamente diferentes:
public
significa que o método é visível e pode ser chamado de outros objetos de outros tipos. Outras alternativas são private
, protected
, package
e package-private
. Veja aqui para mais detalhes.
static
significa que o método está associado à classe, não a uma instância específica (objeto) dessa classe. Isso significa que você pode chamar um método estático sem criar um objeto da classe.
void
significa que o método não tem valor de retorno. Se o método retornasse um, int
você escreveria em int
vez de void
.
A combinação dos três é mais comumente vista no main
método que a maioria dos tutoriais incluirá.
As três palavras têm significados ortogonais.
public
significa que o método estará visível nas classes de outros pacotes.
static
significa que o método não está anexado a uma instância específica e não possui " this
". É mais ou menos uma função.
void
é o tipo de retorno. Significa "este método não retorna nada".
A palavra-chave pública é um especificador de acesso, que permite ao programador controlar a visibilidade dos membros da classe. Quando um membro da classe é precedido por público, esse membro pode ser acessado por código fora da classe na qual é declarado. (O oposto de público é privado, o que impede que um membro seja usado pelo código definido fora de sua classe.)
Nesse caso, main( )
deve ser declarado como público, pois deve ser chamado por código fora de sua classe quando o programa for iniciado.
A palavra-chave static permite main( )
ser chamada sem precisar instanciar uma instância específica da classe. Isso é necessário, pois main( )
é chamado pelo interpretador Java antes de qualquer objeto ser criado.
A palavra-chave void simplesmente diz ao compilador que main( )
não retorna um valor. Como você verá, os métodos também podem retornar valores.
Significa que:
public
- pode ser chamado de qualquer lugarstatic
- ele não possui nenhum estado de objeto, então você pode chamá-lo sem instanciar um objetovoid
- não retorna nadaVocê pensaria que a falta de retorno significa que não está fazendo muito, mas pode estar salvando coisas no banco de dados, por exemplo.
Significa três coisas.
Primeiro public
significa que qualquer outro objeto pode acessá-lo.
static
significa que a classe em que reside não precisa ser instanciada primeiro antes que a função possa ser chamada.
void
significa que a função não retorna um valor.
Como você está apenas aprendendo, não se preocupe muito com os dois primeiros até aprender sobre as aulas, e o terceiro não importará muito até você começar a escrever funções (além da principal).
O melhor conselho que recebi ao aprender a programar, e que passo adiante para você, é não se preocupar com os pequenos detalhes que você não entende imediatamente. Obtenha uma visão geral abrangente dos fundamentos e volte e se preocupe com os detalhes. O motivo é que você precisa usar algumas coisas (como public static void
) nos seus primeiros programas que não podem ser realmente bem explicadas sem antes ensinar a você um monte de outras coisas. Então, por enquanto, apenas aceite que é assim que é feito e siga em frente. Você os entenderá em breve.
Considerando a classe típica de nível superior. Somente modificadores de acesso público e nenhum modificador podem ser usados no nível superior; portanto, você verá público ou nenhum modificador de acesso.
`static 'é usado porque você pode não ter necessidade de criar um objeto real no nível superior (mas às vezes você deseja fazê-lo, nem sempre pode ver / usar estática. Há outras razões pelas quais você não deve incluir estática também, mas este é o típico no nível superior.)
void
é usado porque geralmente você não retornará um valor do nível superior (classe). (às vezes, você deseja retornar um valor diferente de NULL
nulo, nem sempre pode ser usado, especialmente no caso em que você declarou, inicializou um objeto no nível superior ao qual está atribuindo algum valor).
Disclaimer: Eu também sou um novato, por isso, se esta resposta estiver errada de alguma forma, por favor, não me pendure. Durante o dia, sou um recrutador de tecnologia, não um desenvolvedor; codificação é meu hobby. Além disso, estou sempre aberto a críticas construtivas e gosto de aprender, portanto, sinta-se à vontade para apontar quaisquer erros.
public
significa que você pode acessar a classe de qualquer lugar da classe / objeto ou fora do pacote ou classestatic
significa constante em que bloco de declaração usou apenas 1 vezvoid
significa nenhum tipo de retornoPublic
- significa que a classe (programa) está disponível para uso por qualquer outra classe.
Static
- cria uma classe. Também pode ser aplicado a variáveis e métodos, tornando-os métodos / variáveis de classe em vez de apenas locais para uma instância específica da classe.
Void
- isso significa que nenhum produto será retornado quando a classe concluir o processamento. Compare isso com as classes auxiliares que fornecem um valor de retorno para a classe principal; elas operam como funções; estes não são nulos na declaração.
static
significa que o método está associado à classe, não a uma instância específica (objeto) dessa classe. Isso significa que você pode chamar um método estático sem criar um objeto da classe. Por causa do uso de uma static
palavra main()
- chave, seu primeiro método a ser invocado
static
não precisa de nenhum objeto para instância ... portanto, main( )
é chamado pelo interpretador Java antes que qualquer objeto seja criado.
public
,static
,private
, etc), então o tipo de retorno (void
neste caso).