Classe Data

estou com novas duvidas, pois o exercício tem continuaçõa e não estou conseguindo resolver a questão Data. Diz a questão desta forma:
*Crie uma classe chamada data que devera possuir 3 campos int e faça com que seu funcionário passe a usa-la.

CLASSE FUNCIONARIO

    public class Funcionario {  
         
       String nome;  
       String matricula;  
       String depto;  
       String cargo;  
       double salario;  
       Data admissao;  
       String rg;  
       boolean sit;  
       double bonus;  
       double novoSalario;  
         
       class Admissao {  
           int dia;  
           int mes;  
           int ano;  
       }  
         
         void bonifica(double bonif){     
             double novoSalario = this.salario + bonif;     
             this.salario = novoSalario;   }   
           
        public boolean situacao(boolean sit){      
                if(sit==false){      
                    System.out.println("\nFUNCIONARIO DEMITIDO");      
                }else{      
                    System.out.println("\nFUNCIONARIO ATIVO");      
                }      
                return sit;      
                      
            }     
               
        void mostra() {     
            System.out.println("Nome: " + this.nome);    
            System.out.println("Matricula: " + this.matricula);  
            System.out.println("Data de Admissao: " + this.admissao);     
            System.out.println("Departamento: " + this.depto);    
            System.out.println("Cargo Ocupado: "+ this.cargo);  
            System.out.println("RG: " + this.rg);     
            System.out.println("Salario: " + this.salario);     
            System.out.println("Bonus: " + this.bonus);  
            System.out.println("Situação Funcional: " + this.sit);  
              
       }  
    }  

CLASSE TESTAFUNCIONÁRIO

    public class TestaFuncionario extends Funcionario{    
        
        public static void main (String Args[]){  
           Funcionario f1 = new Funcionario();  
           Data admissao = new Data();  
           f1.admissao = Data;  
             
            f1.nome = "Lilian Viana";    
            f1.matricula = "11111111";  
            f1.rg = "3353408";    
            f1.depto = "Informática";  
            f1.cargo = "Desenvolvedora de Software";  
            f1.admissao = "01/03/2011";  
            f1.salario = 4500.00;    
            f1.bonus = f1.salario * 0.5;                
            f1.novoSalario = f1.salario + f1.bonus;  
            f1.situacao(true);  
                   
            System.out.println(f1);    
            System.out.println("\nNome = " + f1.nome + "\nMatricula = " + f1.matricula + "\nRG = " + f1.rg + "\nDepartamento = " + f1.depto + "\n Cargo Ocupado = "+ f1.cargo + "\nSalario = R$" + f1.salario + "\nBonificação = R$" + f1.bonus + "\nData Admissão = "+f1.admissao);     
            System.out.println("Salário com Bonificação: R$"+f1.novoSalario);   
                 
            Funcionario f2 = new Funcionario();    
            f2.nome = "Maria Souza";  
            f2.matricula = "222222222";  
            f2.rg = "4455667";    
            f2.depto = "Administração";  
            f2.cargo = "Administradora";  
            f2.admissao = "30/03/2011";  
            f2.salario = 2800.00;    
            f2.bonus = (200);    
            f2.novoSalario = f2.salario+f2.bonus;    
            f2.situacao(false);  
              
            System.out.println(f2);    
            System.out.println("\nNome = " + f2.nome + "\nMatricula = " + f2.matricula + "\nRG = " + f2.rg + "\nDepartamento = "+ f2.depto + "\nCargo Ocupado = " + f2.cargo + "\nSalario = R$" + f2.salario + "\nBonificação = R$" +f2.bonus+ "\nData de Admissão = " +f2.admissao);    
            System.out.println("Salário com Bonificação: R$"+f2.novoSalario);  
          
        }  
             
        }  

Gostaria da ajuda de vcs, se puderem… Obrigada!!!

A questão diz apenas isto?
Esta classe deveria representar datas, cada um dos int dela representa uma parte da data (dia, mes e ano)?

Sim, diz apenas isto,

class Funcionario{
   Data dataDeAdmissao; // valor default???
  //Outros atributos
}

class Data {
 int dia;
 int mes;
 int ano;
}
 

depois pede para modificar a classe TestaFuncionario, para que eu crie uma nova Data e atrubua lea ao Funcionário.

Funcionario f1 = new Funcionario();
// ...
Data dataDeAdmissao=new Data(); //ligação!
f1.dataDeAdmissao = data;

Com base nas informações só consegui desenvolver o q postei acima…
Não sei como realizar isso.

Então, você precisa criar, na classe data, os getters e setters e, sugiro, um construtor com os 3 parâmetros ao mesmo tempo

public class Data{
 int dia;
 int mes;
 int ano;

 public Data(int dia, int mes, int ano){
  this.dia = dia;
  this.mes = mes;
  this.ano = ano;
 }

 public void setDia(int dia){
  this.dia = dia;
 }

 public int getDia(){
  return dia;
 }
}

Assim, quando vc alterar a classe TestaFuncionario

 ...
 Data dataDeAdmissao = new Data(04, 05, 2011); //ligação!  
 f1.dataDeAdmissao = dataDeAdmissao;  

Primeiramente, muito obrigada pela ajuda… mas, tem uma outra forma de fazer isso sem usar get e set, pois ainda não cheguei nessa parte?.. sou iniciante em JAVA!
Outra coisa a classe Data ficara dentro da Classe funcionário ou será preciso criar uma classe data em um outro pacote?
Desculpa por tantas Dúvidas!

Tem, mas vai contra as boas práticas de programação.
Use apenas o construtor.

public class Data{
 int dia;
 int mes;
 int ano;

 public Data(int dia. int mes, int ano){
  this.dia = dia;
  this.mes = mes;
  this.ano = ano;
 }
}

Muito obrigada pela ajuda… certo!!! sei q boas práticas devem começar desde cedo, mas vou chegar lá… sou iniciante em JAVA!
Outra coisa a classe Data ficara dentro da Classe funcionário ou será preciso criar uma classe data em um outro pacote?
Desculpa por tantas Dúvidas!

Gente, gostaria de saber como faço para que o funcionário entre com a data (dia, mes e ano) e q isso seja impresso depois!

CLASSE FUNCIONARIO

public class Funcionario
...
Data dataDeAdmissao
...
 
 public class Data{  
    int dia;  
    int mes;  
    int ano;  
      
    public Data(int dia, int mes, int ano){  
      this.dia = dia;  
      this.mes = mes;  
      this.ano = ano;  
    }  
    }  
}

CLASSE TESTE


public class TestaFuncionario extends Funcionario{  
  
    public static void main (String Args[]){
       Funcionario f1 = new Funcionario();  

        f1.nome = "Lilian Viana"; 
        f1.matricula = "11111111";
        f1.rg = "3353408";  
        f1.depto = "Informática";
        f1.cargo = "Desenvolvedora de Software";
        f1.salario = 4500.00;  
        f1.bonus = f1.salario * 0.5;              
        f1.novoSalario = f1.salario + f1.bonus;
        f1.situacao(true);
        System.out.println(f1);  
        System.out.println("\nNome = " + f1.nome + "\nMatricula = " + f1.matricula + "\nRG = " + f1.rg + "\nDepartamento = " + f1.depto + "\nCargo Ocupado = "+ f1.cargo + "\nSalario = R$" + f1.salario + "\nBonificação = R$" + f1.bonus);   
        System.out.println("Salário com Bonificação: R$"+f1.novoSalario); 
           
        Funcionario f2 = new Funcionario();  
        f2.nome = "Maria Souza";
        f2.matricula = "222222222";
        f2.rg = "4455667";  
        f2.depto = "Administração";
        f2.cargo = "Administradora";
        f2.salario = 2800.00;  
        f2.bonus = (200);  
        f2.novoSalario = f2.salario+f2.bonus;  
        f2.situacao(false);
        
        System.out.println(f2);  
        System.out.println("\nNome = " + f2.nome + "\nMatricula = " + f2.matricula + "\nRG = " + f2.rg + "\nDepartamento = "+ f2.depto + "\nCargo Ocupado = " + f2.cargo + "\nSalario = R$" + f2.salario + "\nBonificação = R$" +f2.bonus);  
        System.out.println("Salário com Bonificação: R$"+f2.novoSalario);
    
    }
       
    }

Não sei como fazer isso na classe de teste!!!

Por isso seria bom usar getters e setters.
Assim, quando você seta, no construtor, os valores dia, mes e ano e, como eles não estão indicados como private, você pode chamar assim (outra má prática, mas funciona)

System.out.println("Data de Admissao: " + f1.dataDeAdmissao.dia + "/" +
f1.dataDeAdmissao.mes + "/" + 
f1.dataDeAdmissao.ano);

OK, Obrigada, vou tentar;
Se eu não conseguir posto aki novamente… obrigada!!!

Não consegui ainda… Será q alguem poderia me ajudar, se possivel sem get e set, sou iniciante ainda não sei usa-los.

O erro acontece nesta parte, da classe testefuncionario

  Funcionario f1 = new Funcionario();  

        data dataDeAdmissao = new data(10, 05, 2011); //ligação!    
        
        f1.dataDeAdmissao = dataDeAdmissao;

criei a classe data como o drsmachado me mostrou, só q qdu vou pra classe testefuncionario não sei como fazer para chamar a classe data!

PS: EU KERO Q O FUNCIONARIO POSSA ENTRAR COM O DIA, MES E ANO DE ADMISSÃO E Q ISSO SEJA EXIBIDO PARA ELE JUNTAMENTE COM AS OUTRAS INFORMAÇÕES EXISTENTES.

Atte.

Algum erro?

sim, na parte do f1!

Qual erro?

run:
Exception in thread “main” java.lang.RuntimeException: Uncompilable source code - internal error; cannot instantiate data(int,int,int) at data to ()
at Funcionario.(Funcionario.java:23)
at TestaFuncionario.main(TestaFuncionario.java:14)
Java Result: 1

O erro iinforma que a classe data não foi compilada.
Qual IDE está utilizando?

netbeans 7.0

Muito estranho.

Fiz como vc disse…
Mas dá esse erro!
Tbm deu esse erro:
Exception in thread “main” java.lang.RuntimeException: Uncompilable source code - internal error; cannot instantiate data(int,int,int) at data to ()
at Funcionario.(Funcionario.java:23)
at TestaFuncionario.main(TestaFuncionario.java:14)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 10 segundos)

Ai vai sua solução…

Classe para Teste:

public class App {

	public static void main(String[] args) {
		
		Funcionario f1 = new Funcionario();
		
		f1.setNome("Albert");
		f1.setRg("34254534543");
		
		f1.dataEntrada.dia = 10;
		f1.dataEntrada.mes = 05;
		f1.dataEntrada.ano = 2011;
		
		f1.mostrarTudo();

	}

}

Classe Data:

public class Data {
	
	int dia;
	int mes;
	int ano;
	
	public Data(){}
	
	public Data(int dia, int mes, int ano) {
		this.dia = dia;
		this.mes = mes;
		this.ano = ano;
	}

	
}

Classe Funcionario:


public class Funcionario {
	
	private String nome;
	private String rg;
        Data dataEntrada = new Data();


       public void mostrarTudo(){
		
		System.out.println("Nome: "+this.nome);
		System.out.println("RG: "+this.rg);
		System.out.printf("Data Entrada: %d/%d/%d \n",this.dataEntrada.dia,
													  this.dataEntrada.mes,
													  this.dataEntrada.ano);
		
	}


        // Getters e Setters para NOME e CPF aqui. Tirei os mesmos para Data. Para mostrar a forma que você quer.

}

Abraço.