Dúvida com construtor

Olá pessoal
O código abaixo…

package DataConstrutorEx41;

/**Escreva um construtor para a classe Data que receba os valores
correspondentes ao dia, mes, e ano e inicializa os campos da classe,
verificando antes se a data é válida*/

public class Data {

  private byte dia,mes;
  private short ano;

Data(byte d, byte m, short a)
  {
    dia=d;  mes=m;  ano=a;

    dia=new Data();
    dia.inicializaData(d.retornaDia());
    mes=new Data();
    mes.inicializaData(m.retornaMes());
    ano=new Data();
    ano.inicializaData(a.retorna());

    if (dataEValida (d,m,a))
    {
      dia=d;    mes=m;    ano=a;
    }
    else
    {
      dia=0;mes=0;ano=0;
    }
  }
public byte retornaDia()
  {
    return dia;
  }
public byte retornaMes()
  {
    return mes;
  }
public short retornoAno()
  {
    return ano;
  }
public boolean dataEValida(byte d, byte m, short a)
  {
  if
    ((d >=1) &&
    (d <=31) &&
    (m >=1) &&
    (m <=12))
    return true;
  else
    return false;
  }
public boolean eIgual(Data  outraData)
  {
  if
    ((dia==outraData.dia) && (mes==outraData.mes) && (ano==outraData.ano))
    return true;
  else
    return false;
  }
public String toString()
  {
      return dia+"/"+mes+"/"+ano;
  }


public void mostraData()
  {
  System.out.print(dia);
  System.out.print("/");
  System.out.print(mes);
  System.out.print("/");
  System.out.println(ano);
  }
}
package DataConstrutorEx41;

public class DemoData {

public static void main(String[] args) {

  Data nascimento = new Data();
  Data descobrimentoDoBrasil = new Data();

  nascimento.inicializaData((byte)20,(byte)4,(short)1998);
  descobrimento.inicializaData((byte)27,(byte)4,(short)1999);

  byte umDia, umMes; short umAno;
  umDia=22; umMes=13; umAno=2000;
  nascimento.inicializaData(umDia, umMes, umAno);
  nascimento.mostraData();
  umDia=22; umMes=4; umAno=1500;
  descobrimentoDoBrasil.inicializaData(umDia, umMes, umAno);
  descobrimentoDoBrasil.mostraData();
  if (nascimento.eIgual(descobrimentoDoBrasil))
    System.out.println("As datas sao iguais!");
    else
    System.out.println("As datas sao diferentes!");
    nascimento.mes=10;
    descobrimentoDoBrasil.mes=-1;
    }
}

…apresenta as seguintes mensagens de erros:

construtor Data não encontrado na classe Data…;
inicializaData não encontrado na classe Data…;
variável mes tem acesso private na classe DataConstrutorEx41;
varável descobrimento não encontrado na classe Data…

[size=“11”]
[color=“red”]

  • Editado: Aumente as chances de alguém responder o seu tópico. Use BBCode em seus códigos para mantê-los identados e mais legíveis para outros usuários. - Matheus[/color][/size] :joia:

vamos lah:

1)construtor Data não encontrado na classe Data…;

olha se existe a assinatura public Data();

2)inicializaData não encontrado na classe Data…;

esse metodo foi declarado??? acho que ele não existe, vc chama ele num monte de lugar, mas ele não ta declarado em lugar nenhum… olha a visibilidade dele… é public???

3)variável mes tem acesso private na classe DataConstrutorEx41;

tu colocou o mes private pq??? se vc ta acessando ela!!! se quer acessar ela usa public, se não, usa um metodo public getMes()

4)varável descobrimento não encontrado na classe Data…

tu declarou alguma variavel com esse nome??? pelo que eu vi, não declarou não…

ps… olha, acho que tem muito mais erro ai… tu ta declarando 2 classes public no mesmo .java, isso não pode… bem que editaram ai usando BBCode, são dois .java diferentes???

da uma olhadinha, e começa mais devagar… coloca cada classe num .java diferente… olha pra que tu quer que as variaveis sejam private ou public… ou mesmo, da uma lida pra saber o que esse modificador vai fazer pra ti…

de qq forma, acho que por ai tu vai resolvendo… mas te aconselho, a começar de novo… e com mais calma…

[]'s