Me ajudem de novo, plz

esse eh o meu programa

/**

  • Esta classe contem todas as informações
  • de uma pessoa.
    */

class CadernoDeEnderecos {

// Declaração das variáveis.
private String nome = "";
private int telefone;
private String email = "";
private int dia;
private int mes;
private int ano;
private String endereco = "";
private boolean dataValida;

//Define o nome da pessoa.
public void mudarNome(String nomeCompleto) {
	nome = nomeCompleto;
}

//Define o numero de telefone.
public void numeroDeTelefone(int numero) {
	telefone = numero;
}

//Define o e-mail da pessoa.
public void enderecoDeEmail(String endereco) {
	email = endereco;
}

//Defina o dia da data de aniversário da pessoa.
public void mudarDia(int data) {
	if ((data >=1) &&
	   (data <=31))
		dia = data;
	else
		System.out.print("Dia inválido");
}

//Defina o mes da data de aniversário da pessoa.
public void mudarMes(int data) {
		if ((data >= 1) &&
		    (data <= 12))
		  mes = data;
		else
		  System.out.print("Mês invalido");
}

//Defina o ano da data de aniversário da pessoa.
public void mudarAno(int data) {
	if (data >= 1)
		ano = data;
	else
		System.out.print("Ano inválido");
}

//Define o endereço onde a pessoa reside.
public void mudarEndereco(String nome) {
	endereco = nome;
}


//Exibe o nome da pessoa.
public String retornaNome() {
	return nome;
}

//Retorna o numero de telefone da pessoa.
public int retornaTelefone() {
	return telefone;
}

//Retorna o endereço de email da pessoa.
public String retornaEmail() {
	return email;
}

//Retorna o dia do aniversário.
public int retornaDia() {
	  return dia;
}

//Retorna o mês do aniversário.
public int retornaMes() {
	  return mes;
}

//Retorna o ano do aniversário.
public int retornaAno() {
	  return ano;
}

//Retorna o endereço que a pessoa reside.
public String retornaEndereco() {
	return endereco;
}

}

  • informações da pessoa.
    */

class UsaCaderno {

public static void main(String[] args) {

	CadernoDeEnderecos caderno = new CadernoDeEnderecos();

	 System.out.println();
	 System.out.println("Carregando programa, aguarde...");
	 System.out.println();
	 System.out.println("Programa carregado!");
	 System.out.println();
	 System.out.println("Iniciando o programa...");
     System.out.println();

     caderno.mudarNome("Tercio Silva Costa");
     caderno.numeroDeTelefone(88016651);
     caderno.enderecoDeEmail("terciosilvacosta@katatudo.com.br");
     caderno.mudarDia(14);
     caderno.mudarMes(05);
     caderno.mudarAno(1985);
     caderno.mudarEndereco("Bancarios");

     System.out.print("O nome da pessoa: ");
     System.out.print(caderno.retornaNome());

     System.out.println();

     System.out.print("Telefone da pessoa: ");
     System.out.print(caderno.retornaTelefone());

     System.out.println();

	 System.out.print("O E-mail da pessoa: ");
	 System.out.print(caderno.retornaEmail());

	 System.out.println();

	 System.out.print("Aniversario da pessoa: ");
	 System.out.print(caderno.retornaDia());
	 System.out.print("/");
	 System.out.print(caderno.retornaMes());
	 System.out.print("/");
	 System.out.print(caderno.retornaAno());

     System.out.println();

     System.out.print("Endereco da pessoa: ");
     System.out.print(caderno.retornaEndereco());

     System.out.println();

 }

}

olha so, se eu colocar um dia maior doq 31 ou menor doq um eh pra dar a msg que eh um dia invalido, mas qd vou testar o valor que aparece eh zero (0), pq???

e qd tento colocar como por exemplo mudar o dia de int pra byte, acontece um erro, pq?

tipo, tenta ao invés de colocar um if else,
coloque try catch…