[Resolvido] Problema exercicio

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.

Ola amigo

voce nao instanciou o objeto dadosFisicos na classe atleta e mais uma coisa sempre use o padrao CamelCase pra objetos

[code]private DadosFisicos dadosFisicos;

public Atleta() {

dadosFisicos = new DadosFisicos();
} [/code]
Abraços

[quote=DarthCego]Ola amigo

voce nao instanciou o objeto dadosFisicos na classe atleta e mais uma coisa sempre use o padrao CamelCase pra objetos

[code]private DadosFisicos dadosFisicos;

public Atleta() {

dadosFisicos = new DadosFisicos();
} [/code]
Abraços[/quote]

Obrigado amigo,

Era isso mesmo.

E valeu pelas outras dicas.

Abraço !