Resolvido. Obrigado pea ajuda. Código simples para saber a idade

2 respostas
V

Estou tentando fazer um código simples somente para saber a idade, está dando erro nas linhas 09 e 10 e não sei como corrigir. O código é o seguinte:

public class CalcularIdade {

	int ano_atual;
	int ano_nascimento;
	int idade;
	
        public static void main(String[] args) {
		CalcularIdade ci = new CalcularIdade();
		idade = ano_atual - ano_nascimento;
		System.out.println("A idade é " + idade);
	
	}
	
	

}

2 Respostas

B

Você não pode acessar um atributo não estático, dentro de um contexto estático.

Para seu código funcionar basta chamar ci.ano_atual - ci.ano_nascimento, porém se você não setar um valor para os atributos de sua classe a resposta será sempre 0.

Você pode criar um construtor que seta estes valores:

public CalcularIdade(int ano_atual, int ano_nascimento) {
  this.ano_atual = ano_atual;
  this.ano_nascimento = ano_nascimento;
}

Existem vários conceitos de OO que você tem que aprender, os conselhos que dou são:
Se você já sabe programar: Comece estudando OO agora.
Se é iniciante em programação: Comece fazendo tudo que quer dentro do método main.

edmarr

Bom ta ai 2 codigos para vc refletir ,
Tudo dentro do main .

public class CalcularIdade {
	public static void main(String[] args) {
		int ano_atual = 2009;
		int ano_nascimento = 1990;
		int idade = 0;
		idade = ano_atual - ano_nascimento;
		System.out.println("A idade é " + idade);

	}
}
Criando um Objeto
public class CalcularIdade2 {
	public static void main(String[] args) {
		Idade id = new Idade(2009,1990);
		int idade =  id.getAno_atual() - id.getAno_nascimento();
		System.out.println("A idade é " + idade);

	}
}

class Idade{
	private int ano_atual;
	private int ano_nascimento;
	
	Idade(int ano_atual , int ano_nascimento){
		this.ano_atual = ano_atual;
		this.ano_nascimento = ano_nascimento;
	}

	public int getAno_atual() {
		return ano_atual;
	}

	public void setAno_atual(int anoAtual) {
		ano_atual = anoAtual;
	}

	public int getAno_nascimento() {
		return ano_nascimento;
	}

	public void setAno_nascimento(int anoNascimento) {
		ano_nascimento = anoNascimento;
	}
	
	
}

Bom Estudo .

Criado 2 de setembro de 2009
Ultima resposta 2 de set. de 2009
Respostas 2
Participantes 3