2
respostas

Meu código apresenta um erro na linha de código f1.dataEntrada = new Data();

Meu código apresenta um erro na linha de código f1.dataEntrada = new Data(); Consequentemente no f2.dataEntrada = new Data(); também

Estou usando as classes Funcionatio, TestaFuncionario, Empresa e TestaEmpresa separadamente.

public class Funcionario {

String nome; String departamento; double salario; String dataEntrada; int rg; Data dataDeEntrada;

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

double calculaGanhoAnual() { return this.salario * 12; }

void mostra(){ //criei um método pra imprimir todas as informações System.out.println("Nome: " + this.nome); System.out.println("RG: " + this.rg); System.out.println("Departamento: " + this.departamento); System.out.println("Data de entrada: " + this.dataDeEntrada.getFormatada()); System.out.println("Salario Atual: " + this.salario); System.out.println("Ganho Anual: " + this.calculaGanhoAnual()); } }

public class TestaFuncionario {

public static void main(String[] args) {

Funcionario f1 = new Funcionario();

f1.nome = "Rafael"; f1.salario = 7800.0; f1.recebeAumento(50); f1.rg = 123456789; f1.departamento = "Desenvolvimento de Software"; f1.dataEntrada = "10/03/2015";

f1.dataDeEntrada = new Data(); f1.dataDeEntrada.preencheData(10, 03, 2017);

f1.mostra(); } }

public class Empresa { Funcionario[]empregados; String nome; String cnpj; int livre = 0;

void adiciona(Funcionario f) { this.empregados[this.livre]=f; this.livre++; } }

class TestaEmpresa {

public static void main (String[] args) { Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[10];

Funcionario f1 = new Funcionario(); f1.salario = 1000; f1.dataEntrada = new Data(); // ERRO -> type mismatch: cannot convert from data to string empresa.adiciona(f1);

Funcionario f2 = new Funcionario(); f2.salario = 1700; f2.dataEntrada = new Data(); // ERRO -> type mismatch: cannot convert from data to string empresa.adiciona(f2);

empresa.empregados[0].mostra(); empresa.empregados[1].mostra(); } }

2 respostas

Essa classe Data foi criada por você ou foi importada? Não vi nenhum import, mas acredito que esteja usando a java.until.Date. Se este for o caso, veja como é feita a conversão de Data para String:

java.util.Date date = new Date(DATA AQUI DENTRO);
SimpleDateFormat formatacaoDesejada = new SimpleDateFormat("yyyy-MM-dd");
String textoFormatado = formatacaoDesejada.format(date);
System.out.println(textoFormatado);

Ademais, se a classe Data tiver sido criada por você, a solução mais simples é criar um metodo que retorne a data como String, e nao Formatação de Data.

Mais onde está a sua classe Data? E qual erro aparece? E aconselho você a usar o <> INSERIR CÓDIGO que tem no lado esquerdo superior da caixa de diá logo, porque assim a formatação fica igual ao seu código escrito e fica mais légivel pra que ler suas classes e códigos

Envie sua classe Data e o erro que está acontecendo

Nesse trecho do seu código da classe Funcionario:

    String dataEntrada; 
    int rg; 
    Data dataDeEntrada;

Você criou duas propridades para Data, uma String e a outra Referênciando sua classe Data;

Mais na hora de chamar na classe Teste... f1.dataEntrada = new Data() Você esta dando new Data() na proprieda que é String

você deveria ter feito

f1.dataDeEntrada = new Data(); // que seria a referência certa pra sua classe Data