[Resolvido] Dúvida em exercício

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);	
	}
}