Duvidas sobre POO

Opa pessoal tudo bem? Estou aprendendo a pouco tempo sobre POO e me surgiu uma duvida que é a seguinte, como eu consigo ler o dado dentro do While? Pois como eu coloquei o para puxar o primeiro de fora não consigo pegar o valor de dentro novamente. Quem puder me ajudar, agradeço!

/*Crie um programa que recebe do usuário vários números, até que o número zero seja digitado para finalizar o processo. 
Ao finalizar o processo o sistema deve exibir a média de todos os números positivos.*/
package poo.aulas.Dia1903;

import java.util.Scanner;

public class QuestRevisao5POO {
	
	public static void main(String[] args) {
		Scanner leia=new Scanner(System.in);
		double numero=0;
		
		System.out.println("Digite um numero");
		numero=leia.nextInt();
		
		CalculaMedia media = new CalculaMedia(numero);    
		
		while(numero != 0) {
			media.Somar();
			System.out.println(media.MostrarSoma());
			System.out.println("Digite um numero");
			numero = leia.nextInt();
			media.Contador();
		}
		
		media.CalcularMedia();
		System.out.println("A media é de:" + media.MostrarMedia());
	}
}

Classe:

package poo.aulas.Dia1903;

public final class CalculaMedia {
	double media;
	double dado;
	double soma;
	int cont;

	public CalculaMedia(double newdado) {
		dado = newdado;
	}

	public void Contador() {
	cont++;
	}

	public void Somar() {
		soma = soma+dado;
	}

	public double MostrarSoma() {
		return soma;
	}

	public void CalcularMedia() {
		media = soma/cont;
	}

	public double MostrarMedia() {
		return media;
	}
}

Basta fazer a chamada direta dentro do while ou onde desejar na sua classe, porém somente após ter criado a instância da sua classe CalculaMedia!

CalculaMedia calculaMedia = new CalculaMedia(0.0);    
calculaMedia.dado = 10.0; //Atribuição de valor no atributo dado
double valorDado = calculaMedia.dado; //Recuperação do valor contido no atributo dado
1 curtida

Bah, valeu ai, procurei por tudo antes de postar aqui.