public class Idade {
int datanascimento;
int anoatual;
int calculo;
int idadeatual;
public static void main(String[] args) {
anoatual=2013;
datanascimento=1990;
calculo = anoatual - datanascimento;
}
}
para calcular idade está dando erro aqui :
anoatual=2013;
datanascimento=1990;
calculo = anoatual - datanascimento;
Está dando erro porque você está usando atributos de instancia em um método de classe.
Três soluções:
A primeira transforme os atributos em atributos de classe
ou
Crie uma instancia da classe Idade e chame os atributos a partir da referencia dessa instancia
ou
Transforme os atributos de classe em variáveis locais.
E por favor, leia isso.
public class Idade {
static int datanascimento;
static int anoatual;
static int calculo;
static int idadeatual;
public static void main(String[] args) {
anoatual=2013;
datanascimento=1990;
calculo = anoatual - datanascimento;
}
}
Use assim que funciona.
qual a função desse static
Ele permite com que você tenha acesso direto a variável ou método, não precisando instanciar nenhum objeto dessa classe.
Se for usar em uma outra classe, você só tem que “informar” onde esse método ou atributo estático esta declarado, exemplo:
[code] NomeDaClasse.metodoEstatico();
NomeDaClasse.atributoEstatico;[/code]
O modificador static indica que aquilo faz parte da classe e não de uma instancia portanto você pode acessa-lo a partir do nome da classe.
Exemplo:
public class Main {
public static void main(String[] args) {
OutraClasse.fazAlgumaCoisa();
}
}
class OutraClasse {
public static void fazAlgumaCoisa() {}
}
Note que o metodo fazAlgumaCoisa() foi chamado usando o nome da classe e não uma instancia como seria o caso abaixo:
public class Main {
public static void main(String[] args) {
OutraClasse oc = new OutraClasse();
oc.fazAlgumaCoisa();
// OU
new OutraClasse().fazAlgumaCoisa();
}
}
class OutraClasse {
public void fazAlgumaCoisa() {}
}
Obrigado a todos pela ajuda!