Bom dia galera,
Seguinte estou começando com a tecnologia Java e estou tendo certos problemas, pois fiz o código abaixo e esta dando o seguinte erro quando tento executar:
Exception in thread “main” java.lang.NoSuchMethodError: main
Alguem pode me dar uma ajuda em relação a esse problema?
Para o metodo main em java não há muito o que discutir… ele não é muito “flexível”, ele tem que ser public, para que qq um possa acessá-lo, ele tem que static, para que não dependa de uma instancia da classe, tem que bser void, pois não retorna nada, e tem que ter o nome main e receber sempre um array de strings, que são para se recuparar possíveis parametros passados a aplicação, então temos:
...
public static void main(String[] args){
...
Se vc tentar colocar outra assinatura para o metodo a JVM não o achará… sendo que na assinatura dele pode-se incluir declaração de “throws” alguma exception…
C
cimarinosPJ
mto obrigado mesmo …
deu certo agora…e td intendido…
vou continuar aqui e qualquer coisa pode deixar q eu grito outra vez ahuahuahaa
vlww
B
BrunoCarloPJ
“cimarinos”:
mto obrigado mesmo …
deu certo agora…e td intendido…
vou continuar aqui e qualquer coisa pode deixar q eu grito outra vez ahuahuahaa
vlww
Tranquilo… a galera tá sempre a postos pra ajudar
S
sergiotabordaPJ
A assinatura de um método compreende várias coisas e em termos gnericos é assim:
[visibilidade] [detalhes de implementação] [retorno] [nome] ( [argumentos] )
Se algumas destas coisas é diferente então é outro método!
[visibilidade] um de : public, private , protected , se não for colocado nenhum dos três isso tb é um nivel de visibilidade chamado package (pacote) . são 4 niveis.
[detalhes de implementação]:
static - o método pertence à classe, não ao objeto
final - não pode ser sobreescrito
native - é um método implementado com codigo nativo via JNI
abstract - não tem implementação. A classe filha deve implementar este método.
strictfp - força a adoção do padrão IEEE para cálculos com float e double.
[retorno]
void - sem retorno
qualquer dos tipos primitivos ou qualquer classe
[nome]
qualquer nome
[argumentos]
lista de argumentos separados por virgula. Cada argumento tem um tipo e um nome. Exemplo String[] args : String[] significa um array de string, args é o nome do argumento.
São todos métodos diferentes.
A JVM procura apenas pelo ultimo. Se não encontra, dá o erro que viste.
Nota:
É possível definir métodos com assinaturas iguais,em que a única diferença é a lista de argumentos. Esses métodos dizem-se sobrecarregados (overloaded). não confundir com sobreescrita (overwriten).