Fala galera, tudo bom ?
To com um problema em um exercicio.
Vou colocar as classes, em seguida aponto o lugar que ta dando erro. Porém não consegui descobrir como arrumar.
[code]package pacote;
public class DadosFisicos {
private double peso;
private double altura;
private int idade;
public DadosFisicos() {
peso = 0.0;
altura = 0.0;
idade = 0;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura) {
this.altura = altura;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public double calcularImc (double altura, double peso) {
double imc = 0;
imc=(getPeso())/(getAltura()*getAltura());
return imc;
}
public void exibirDados() {
System.out.println("Peso: " + getPeso());
System.out.println("Altura: " + getAltura());
System.out.println("Idade: " + getIdade());
}
}
[/code]
package pacote;
public class Atleta {
private String nome;
private int numeroCamisa;
private String posicao;
private boolean status;
private DadosFisicos DadosFisicos;
public Atleta() {
nome = "";
numeroCamisa = 0;
posicao = "";
status = false;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getNumeroCamisa() {
return numeroCamisa;
}
public void setNumeroCamisa(int numeroCamisa) {
this.numeroCamisa = numeroCamisa;
}
public String getPosicao() {
return posicao;
}
public void setPosicao(String posicao) {
this.posicao = posicao;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public DadosFisicos getDadosFisicos() {
return DadosFisicos;
}
public void setDadosFisicos(DadosFisicos dadosFisicos) {
DadosFisicos = dadosFisicos;
}
public int alteraStatus() {
double imc = DadosFisicos.calcularImc(DadosFisicos.getAltura(), DadosFisicos.getPeso());
int retorno = 0;
if (imc <= 18.5) {
retorno = -1;
}
if (imc > 18.5 && imc <= 25) {
retorno = 0;
status = true;
}
if (imc > 25 && imc <= 30) {
retorno = -1;
}
if (imc > 30) {
retorno = -1;
}
return retorno;
}
public void exibirDados() {
System.out.println("Nome: " + getNome());
System.out.println("Numero da camisa: " + getNumeroCamisa());
System.out.println("Posição: " + getPosicao());
System.out.println("Status: " + isStatus());
}
}
package pacote;
import java.text.DecimalFormat;
public class TesteTime {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
DecimalFormat df = new DecimalFormat("0.00");
Atleta a1 = new Atleta();
DadosFisicos d1 = new DadosFisicos();
a1.setNome("Pedro");
a1.setNumeroCamisa(7);
a1.setPosicao("Centroavante");
a1.setStatus(false);
d1.setPeso(98);
d1.setAltura(1.88);
d1.setIdade(25);
a1.exibirDados();
double result = d1.calcularImc(d1.getAltura(), d1.getPeso());
if (result <= 18.5) {
System.out.println("O IMC do atleta é de: " + df.format(result));
System.out.println("<= 18,5 - Jogador tem peso abaixo da normalidade");
}
if (result >18.5 && result <=25 ) {
System.out.println("O IMC do atleta é de: " + df.format(result));
System.out.println(">18,5 e <=25 - Jogador tem peso dentro da normalidade");
}
if (result >25 && result <=30 ) {
System.out.println("O IMC do atleta é de: " + df.format(result));
System.out.println("> 25 e <=30 - Jogador tem peso acima da normalidade");
}
if (result >30) {
System.out.println("O IMC do atleta é de: " + df.format(result));
System.out.println("> 30 - Jogador está obeso");
}
if (a1.isStatus() == false) {
if (a1.alteraStatus() == -1 && result <= 30){
System.out.println("Jogador não pode ser titular");
System.out.println("Seu peso está abaixo da normalidade!");
}
if (a1.alteraStatus() == -1 && result > 25 && result <= 30){
System.out.println("Jogador não pode ser titular");
System.out.println("Seu peso está acima da normalidade!");
}
if (a1.alteraStatus() == -1 && result > 30){
System.out.println("Jogador não pode ser titular");
System.out.println("Seu peso está completamente fora da normalidade, obeso!");
}
else {
System.out.println("O atleta agora é titular do time!");
}
}
}
}
O erro ta na ultima classe, da linha 52 até 70.
Quando eu compilo, o eclipse aponta o seguinte erro:
Exception in thread “main” java.lang.NullPointerException
at pacote.Atleta.alteraStatus(Atleta.java:61)
at pacote.TesteTime.main(TesteTime.java:53)
Se quiserem, posso postar o enunciado do exercicio… porém é meio longo.
Obrigado.