Erro de non-static method

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();
}
}

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.

 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.
mais_erros m = new mais_erros();
m.somaIdades();
}
}

Valeu pela dica Thiago.

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

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.

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:

[code]public class Teste {

static public void metodo1(){System.out.println(1);}

static public void metodo2(){System.out.println(2);}

public void metodo3(){System.out.println(3);}

public void metodo4(){System.out.println(4);}

public static void main(String[] args) {
	Teste t = new Teste();
	// metodos static
	t.metodo1();      // ok mas gera warning,
	t.metodo2();      // ok mas gera warning,
	Teste.metodo1();  // agora sim, ok e bonito :)
	Teste.metodo2();  // agora sim, ok e bonito :)
	// metodos não-static		
	t.metodo3();     // ok
	t.metodo4();     // ok
	Teste.metodo3(); /* Erro: Cannot make a static reference to the non-static */
	Teste.metodo4(); /* method metodo1() from the type Teste */
}

}[/code]

dentro de metodos:

public class Teste {
	
	// metodo estatico 
	static public void metodo1(){
		System.out.println(1);
	}

	// metodo não-estatico 
	public void metodo2(){
		System.out.println(2);
	}

	// reconheceu ?
	static public void metodo3(){
		metodo1();        // chamando outro estatico
		Teste.metodo1();  // forma completa
		metodo2();        /* Erro: Cannot make a static reference to the     */  	
		this.metodo2();	  /* non-static method metodo2() from the type Teste */
		
		/* sem falar q não se usa this no contexto estatico
		 * por que sera? pesquise sobre isso... */
		
		/* testando com a instancia da classe*/
		Teste t = new Teste();
		t.metodo2();      // agora sim (!)
	}
	
	// reconheceu ?
	public void metodo4(){
		metodo1();        // metodo estatico
		Teste.metodo1();  // forma completa 
		metodo2();        // metodo nao estatico
		this.metodo2();	  // a partir da referência 'this'	 
	}	
}

Boa sorte…