Galera! Sobre o exercício 6 do capitulo 3! Eu não entendi muito bem como funciona esse programa... Colem o código do programa de vocês aqui pra mim ver como é! Ou se não me expliquem, sei lá rs. desde já agradeço!
Galera! Sobre o exercício 6 do capitulo 3! Eu não entendi muito bem como funciona esse programa... Colem o código do programa de vocês aqui pra mim ver como é! Ou se não me expliquem, sei lá rs. desde já agradeço!
Você deverá possuir duas classes -> "Funcionario" e "TestaFuncionario" o exercicio pede para que você crie a terceira classe "Data" e justamente essa nova classe e que o funcionario passe a usa-la como um atributo. Ex.
private Data data;
apos isso rodar normalmente o código da classe TestaFuncionário que é o único que possui metódo main.
Exatamente como o Odenilton falou, você deverá criar um outra classe chamada Data e deverá substituir a propriedade dataentrada da sua classe Funcionário para utilizar essa classe Data e não uma String.
Exatamente Sandro e Odenilton, concordo. Se ele veio seguindo ATENTAMENTE o curso, será capaz de realizar estes procedimentos.... Bom código galera.
Seja mais humilde Ricardo, nem todos tem a capacidade de aprender algo tão rápido. Mas galera aqui ta o meu código. Não consigo compilar ele, gosto de quebrar a cabeça até resolver, mas agora admito preciso de um help! rs. Segue o cód:
class Funcionario2 { String nome; double salario; Data dataEntrada;
void mostra(){ System.out.println("Data: " + dataEntrada); } }
class Data{ int dia; int mes; int ano;
void preencheData(int dia, int mes, int ano){ this.dia = dia; this.mes = mes; this.ano = ano; }}
class TestaFuncionario2{ public static void main(String[] args){ Funcionario f1 = new Funcionario(); f1.nome = "Marcos"; f1.salario = 200;
f1.dataEntrada = new Data(); f1.dataEntrada.preencheData(1, 4, 2005);
f1.mostra();
} }
Tiago, o que exatamente você não está conseguindo entender? Veja, o código é relativamente simples: 1. A classe Data define um objeto que conterá os dados que permitem tratar uma data, com dia, mês e ano. Até aí, acho que está tranquilo, certo? 2. O método preencheData serve para definir em uma única chamada todos os atributos da classe, ele é apenas um facilitador, que evita de você fazer coisas como
Data.dia=1;
Data.mes=4;
Data.ano=2015;
No lugar disso, você usa uma única chamada que faz o mesmo:
Data.preencheData(1,4,2015);
Mas dois detalhes me chamaram a atenção: 1. Na definição da classe você chamou de Funcionario2, mas no código da TestaFuncionario instanciou a classe Funcionário, sem o 2, não sei se foi erro no momento de transcrever o código aqui ou se foi erro na hora da programação mesmo que impediu o Java de compilar; 2. No método mostra, você faz:
System.out.println("DataEntrada: " + DataEntrada);
quando deveria fazer algo como :
System.out.println("DataEntrada: " + this.DataEntrada.dia + "/" + this.DataEntrada.mes + "/" + this.DataEntrada.ano);
Talvez esses tenham sido os motivos de suas dúvidas, se não for nada disso, explique melhor o que está acontecendo.
esse código que você passou por ultimo
class Funcionario2 {
String nome;
double salario;
Data dataEntrada;
void mostra() {
System.out.println("Data: " + dataEntrada);
}
}
class Data {
int dia;
int mes;
int ano;
void preencheData(int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
}
class TestaFuncionario2 {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();// hora de criar o funcionarío vc da tipo "Funcionário" mas na classe vc deu nome de Funcionario2 veja isso
f1.nome = "Marcos";
f1.salario = 200;
f1.dataEntrada = new Data();
f1.dataEntrada.preencheData(1, 4, 2005);
f1.mostra();
}
}
Valeu Sandro e Odenilton! Problema resolvido!obrigado pela paciência, é que estou começando agora, estou me esforçando o máximo mas as vezes me perco mesmo assim. Valeu!! Se desse eu marcava as duas como solução, mas... Abraço!