Data no modo string. Como concatenar com o método?

11 respostas
K

Estou com o seguite problema: estou desenvolvendo um sistema através da apostila Caellum Java Oriantação a Objeto.

===> Estou com o seguinte problema.

Na página 54 pede para eu concatenar a data que se encontra em valor inteiro.

==> Classe Data:

int dia;
int mes;
int ano;

void formatada(){
String dataString = Integer.toString(dia)+
Integer.toString(mes)+
Integer.toString(ano);

==> A classe “Funcionário” existe o metodo mostrar e dentro dele que colocarei a data formatada

motrar(){
System.out.println("Data de entrada: " = this.dataDeEntrada.formatada());
}

==> A classe “Testa funcionário” que carregará as informações

Data data = new Data();
f1.dataDeEntrada = data;
f1.dataDeEntrada.dia = 01;
f1.dataDeEntrada.mes = 12;
f1.dataDeEntrada.ano = 2016;

void mostrar();

Quando executo a classe Testar funcionário da a seguinte informação:

The metodo formatada is undefined for the type Data

O FormData método é indefinido para o tipo de dados. (informando método indefinido) não to conseguido resolver.

11 Respostas

L

A classe Data e Funcionário estão dentro do mesmo pacote?

Se não estiverem deixe o método formatada() como publico:
public void formatada()…

Tem um metodo em Funcionário motrar(), mas você chama o “mostrar”… foi erro de digitação ou existe um método mostrar em “Testa funcionário”? esta classe está num pacote diferente?

A visibilidade dos seus método está default onde só é possível acessar do mesmo pacote, se fosse public você conseguiria acessar, veja se é isso e se não for, dê mais informações sobre o problema.

=D

K

Estão todos dentro do mesmo pacote “Empresa”.

K

Vou ver os outros itens…

L

Foi mal cara, vi agora que seu formatada tem um retorno void, mude para o retorno String
String formatada() { String dataString = Integer.toString(dia) + Integer.toString(mes) + Integer.toString(ano); return dataString; }

no método “motrar”
motrar(){ System.out.println("Data de entrada: " + this.dataDeEntrada.formatada()); }

K

Está dando a mensagem: The metodo dataString() is undefined for the type Data

Cla

Classe Funcionário:

package Empresa;

public class Funcionario {
String nome;
double salario;
double ganhoAnual;
Data dataDeEntrada;

void recebeAumento(double aumento){
    this.salario += this.salario + aumento;
    
}

void calculaGanhoAnual(){
   ganhoAnual = salario * 12;
    
    
}

public void mostrar(){
    System.out.println("Nome: " + this.nome);
    System.out.println("Salário: "+ this.salario);
    System.out.println("ganho anual: " + this.ganhoAnual);
    System.out.println(dataDeEntrada);
    
    System.out.println("Dia: " + this.dataDeEntrada.dia);
    System.out.println("Mês " + this.dataDeEntrada.mes);
    System.out.println("Ano " + this.dataDeEntrada.ano);
    System.out.println("Data de entrada: " + this.dataDeEntrada.formatada());

 }

}

Classe Data:

package Empresa;

public class Funcionario {
String nome;
double salario;
double ganhoAnual;
Data dataDeEntrada;

void recebeAumento(double aumento){
    this.salario += this.salario + aumento;
    
}

void calculaGanhoAnual(){
   ganhoAnual = salario * 12;
    
    
}

public void mostrar(){
    System.out.println("Nome: " + this.nome);
    System.out.println("Salário: "+ this.salario);
    System.out.println("ganho anual: " + this.ganhoAnual);
    System.out.println(dataDeEntrada);
    
    System.out.println("Dia: " + this.dataDeEntrada.dia);
    System.out.println("Mês " + this.dataDeEntrada.mes);
    System.out.println("Ano " + this.dataDeEntrada.ano);
    System.out.println("Data de entrada: " + this.dataDeEntrada.formatada());

}

}

Classe TestaFuncionário:

package Empresa;

public class TestaFuncionario {
  public static void main(String [] args){
    Funcionario f1 = new Funcionario();
    
    Data data = new Data();
    f1.dataDeEntrada = data;
    
    f1.dataDeEntrada.dia = 01;
    f1.dataDeEntrada.mes = 12;
    f1.dataDeEntrada.ano = 2016;
    
    
    
    
    f1.nome = "Hugo";
    f1.salario = 100;
    f1.recebeAumento(50);
    f1.calculaGanhoAnual();
    
    
    System.out.println("Salário atual: " +f1.salario);
    System.out.println("Ganho anual: " + f1.ganhoAnual);
    
    f1.mostrar();
    

    
    Funcionario f2 = new Funcionario();
    f2 .nome = "Danilo";
    f2.salario = 100;
    
    if(f1 == f2){
        System.out.println("Iguais");
    }else{
        System.out.println("diferentes");
    }           

    }
}
L

faltou a classe data… você colou Funcionario 2 vezes

K

Classe Data:

package Empresa;

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

   String formatada(){
        String dataString = Integer.toString(dia)
        +Integer.toString(mes)
        +Integer.toString(ano);
        //return dataString();
        return dataString();
   }
L

Na linha

“kodak:

return dataString();

tire os parenteses.

ficaria:
return dataString;

K

Funcionou, Muito Obrigado.

Ficou assim:

String formatada(){
            String dataString = Integer.toString(dia)+"/"
            +Integer.toString(mes)+"/"
            +Integer.toString(ano);
            return dataString;
}
F

Dê uma olhada sobre datas antes, existem formas mais corretas:

http://www.mkyong.com/java/java-date-and-calendar-examples/

K

Valeu.
(Guardei o link para uma futura necessidade).

rsrsrsrsrs…

Criado 16 de junho de 2016
Ultima resposta 18 de jun. de 2016
Respostas 11
Participantes 3