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);
}
}
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.
Bom ta ai 2 codigos para vc refletir ,
Tudo dentro do main .
[code]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);
}
}[/code]
Criando um Objeto
[code]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;
}