Olá pessoal, estou começando a aprender Java e gostaria de uma ajuda em um exercício do Caellum:
(opcional-avançado) Crie ummétodo na classe Data que devolva o valor formatado da data, isto é, devolva
uma String com ?dia/mes/ano?. Isso para que o método mostra da classe Funcionario possa ?car assim:
class Funcionario {
// atributos e metodos
void mostra() {
// imprime outros atributos...
System.out.println("Data de entrada: " + this.dataDeEntrada.formatada());
}
}
[code]
class Funcionario {
String nome;
String departamento;
String rg;
Data dataDeEntrada;
//Data dataDeEntrada = new Data();
double salario;
void recebeAumento(double aumento) {
salario += aumento;
System.out.println("Seu salário após o aumento: "+salario);
}
double calculaGanhoAnual() {
return (salario * 12);
}
void mostra() {
System.out.println("Nome: "+this.nome +"\nDepartamento: "+this.departamento +
"\nSalário: "+this.salario +"\nRG: "+this.rg);
System.out.println("Data de entrada: "+dataDeEntrada.formatada());
//System.out.println("Dia: " +this.dataDeEntrada.dia+"\n"+
//"Mês: "+this.dataDeEntrada.mes+ "\n"+
//"Ano: "+this.dataDeEntrada.ano);
}
}
class Data {
int dia;
int mes;
int ano;
String formatada() {
return (this.dia+"/"+this.mes+"/"+this.ano);
}
}[/code]
Eu fiz isso, consegui pegar a data formatada, porém, parece que o valor de dataDeEntrada.formatada(); é fixo ali, já tentei utilizar o this.dataDeEntrada.formatada(); no método mostrar(), mas não tive êxito, gostaria de saber como eu faço pra ter essa data formatada de cada objeto que eu for criar da classe Funcionario.
StringBuffer buffer = new StringBuffer();
buffer.append(dia).append("/").append(mes).append("/").append(ano).toString();
use StringBuffer para concatenar String…
[]s
[i]Olá, eu criei um contrutor em Data, assim declarava a data na hora de instanciar.
O meu método ficou assim:[/i]
[code]
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;
}
public String dataFormatada(){
return this.dia +"/"+ this.mes +"/"+ this.ano;
}
}[/code]
1 curtida
Galera, consegui resolver o problema aqui, muito obrigado aos que responderam.
Ola, resolveu? legal! Se puder, poste a solução e inclua (RESPONDIDO) no título da sua mensagem inicial. Obrigado
Demorei um pouco pra ver esse post de novo, espero que não esteja atrapalhando o fórum, ao “reviver” esse post, mas consegui resolver colocando this.dataDeEntrada.formatada() no método mostra(); (não tinha conseguido fazer anteriormente, mas depois consegui).
Antes de conseguir resolver:
class Funcionario {
String nome;
String departamento;
String rg;
Data dataDeEntrada;
//Data dataDeEntrada = new Data();
double salario;
void recebeAumento(double aumento) {
salario += aumento;
System.out.println("Seu salário após o aumento: "+salario);
}
double calculaGanhoAnual() {
return (salario * 12);
}
void mostra() {
System.out.println("Nome: "+this.nome +"\nDepartamento: "+this.departamento +
"\nSalário: "+this.salario +"\nRG: "+this.rg);
System.out.println("Data de entrada: "+dataDeEntrada.formatada());
//System.out.println("Dia: " +this.dataDeEntrada.dia+"\n"+
//"Mês: "+this.dataDeEntrada.mes+ "\n"+
//"Ano: "+this.dataDeEntrada.ano);
}
}
class Data {
int dia;
int mes;
int ano;
String formatada() {
return (this.dia+"/"+this.mes+"/"+this.ano);
}
}
Após resolver:
class Funcionario {
String nome;
String departamento;
String rg;
Data dataDeEntrada;
//Data dataDeEntrada = new Data();
double salario;
void recebeAumento(double aumento) {
salario += aumento;
System.out.println("Seu salário após o aumento: "+salario);
}
double calculaGanhoAnual() {
return (salario * 12);
}
void mostra() {
System.out.println("Nome: "+this.nome +"\nDepartamento: "+this.departamento +
"\nSalário: "+this.salario +"\nRG: "+this.rg);
System.out.println("Data de entrada: "+this.dataDeEntrada.formatada());
//System.out.println("Dia: " +this.dataDeEntrada.dia+"\n"+
//"Mês: "+this.dataDeEntrada.mes+ "\n"+
//"Ano: "+this.dataDeEntrada.ano;
}
}
class Data {
int dia;
int mes;
int ano;
String formatada() {
return (dia+"/"+mes+"/"+ano);
}
}