Erro de non-static method  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Dcoxas
Smalltalk
[Avatar]

Membro desde: 23/05/2006 12:21:40
Mensagens: 2
Offline

Comecei a tentar aprender java hoje, e já me deparei com esse erro no programa abaixo.
Alguem pode me ajudar ?
public class mais_erros
{
int primeiraIdade;
int segundaIdade;
public void somaIdades (){
System.out.println("A soma das idades é: " + (primeiraIdade + segundaIdade) );
}
public static void main (String[] args)
{
// Esta chamada de metodo ira imprimir a soma das idades na tela.
somaIdades();
}
}

Só sei que nada sei.
E quanto mais estudo mais sei que tenho muito a estudar.
thiago.correa
GUJ Master
[Avatar]

Membro desde: 26/03/2006 18:54:30
Mensagens: 1861
Offline

Dê uma lida nos conceitos de java, isso é que mata muitos programadores iniciantes.
Por exemplo, nome de classes são sempre com a
primeira letra em maiúsculo, no seu exemplo seria MaisErros.

variáveis de classe são sempre são inicializadas com valores padrões, no seu caso primeiraIdade e segundaIdade teriam o valor zero.

O método main, é um método static, e estava chamando um método não static, logo ele precisa acessar de uma maneira statica ( ou cria-se um objeto da sua classe, ou muda-se o metodo somaIdades para static)

Tente o código abaixo que deve funcionar.



---
"Se não puder ajudar, atrapalhe, afinal de contas o importante é participar!"
Thiago
[MSN]
Dcoxas
Smalltalk
[Avatar]

Membro desde: 23/05/2006 12:21:40
Mensagens: 2
Offline

Valeu pela dica Thiago.

Porem continuo sem entender o porque eu estava chamando o metodo como não statico?

Só sei que nada sei.
E quanto mais estudo mais sei que tenho muito a estudar.
micheljuca
JavaTeenager
[Avatar]

Membro desde: 11/08/2005 15:20:20
Mensagens: 184
Localização: Brasília - DF
Offline

depois da explicacao do cara, merecida de 5*, vc nao merecia mais explicacao mas eu vou tentar...

vc estava chamando de forma static porque vc nao instanciou um objeto dessa classe, para so depois chamar o metodo. Vc ta chamando direto, sem instanciar. Pra corrigir ou vc faz o que te falou ou coloca um static antes do nome do metodo.

--
Michel A. Jucá
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline

Metodo estático (definido com a palavra reservada static)

nome_da_classe.nome_do_método();

Metodo não-estático

INSTÂNCIA_da_classe.nome_do_método();

Agora veja os exemplos:



dentro de metodos:



Boa sorte...

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team