3
respostas

Não consigo compilar, não acho o erro.

insira seu código aqui
```

insira seu código aqui ```package alura_Curso;

public class Funcionario {

String nome; double cpf; String departamento; Data dataEntrada; double salario; Data nascimento;

void mostra() { System.out.println("\nNome : " + this.nome); System.out.println("Cpf : " + this.cpf); System.out.println("Data nascimento : " + this.nascimento.getFormatada()); System.out.println("Data de entrada : " + this.dataEntrada.getFormatada()); System.out.println("Departamento : " + this.departamento); System.out.println("Salário : " + this.salario);

}

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

}

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

class Data {

int dia; int mes; int ano;

String getFormatada() { return this.dia + "/" + this.mes + "/" + this.ano; }

public void preencheData(int dia, int mes, int ano) { this.dia = dia; this.mes = mes; this.ano = ano;

}

}

public class DadosFuncionario {

public static void main(String[] args) {

Funcionario daniel = new Funcionario();

daniel.nome = "Daniel Ortega"; daniel.cpf = 123456; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniel.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0); daniel.salario = 2000.0; daniel.recebeAumento(2000.0); daniel.calculaGanhoAnual(); daniel.mostra();

Funcionario daniela = new Funcionario();

daniela.nome = "Daniela Ortega"; daniela.cpf = 654321; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniela.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0); daniela.salario = 4000.0; daniela.recebeAumento(500.0); daniela.calculaGanhoAnual(); daniela.mostra();

} }

3 respostas

insira seu código aquipackage alura_Curso;

public class Funcionario {

String nome; double cpf; String departamento; Data dataEntrada; double salario; Data nascimento;

void mostra() { System.out.println("\nNome : " + this.nome); System.out.println("Cpf : " + this.cpf); System.out.println("Data nascimento : " + this.nascimento.getFormatada()); System.out.println("Data de entrada : " + this.dataEntrada.getFormatada()); System.out.println("Departamento : " + this.departamento); System.out.println("Salário : " + this.salario);

}

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

}

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

class Data {

int dia; int mes; int ano;

String getFormatada() { return this.dia + "/" + this.mes + "/" + this.ano; }

public void preencheData(int dia, int mes, int ano) { this.dia = dia; this.mes = mes; this.ano = ano;

}

}

public class DadosFuncionario {

public static void main(String[] args) {

Funcionario daniel = new Funcionario();

daniel.nome = "Daniel Ortega"; daniel.cpf = 123456; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniel.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0); daniel.salario = 2000.0; daniel.recebeAumento(2000.0); daniel.calculaGanhoAnual(); daniel.mostra();

Funcionario daniela = new Funcionario();

daniela.nome = "Daniela Ortega"; daniela.cpf = 654321; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniela.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0); daniela.salario = 4000.0; daniela.recebeAumento(500.0); daniela.calculaGanhoAnual(); daniela.mostra();

} }

A saída dele fica assim:

Nome : Daniel Ortega Cpf : 123456.0 Data nascimento : 0/0/0 Data de entrada : 0/0/0 Departamento : Administrativo Salário : 4000.0

Nome : Daniela Ortega Cpf : 654321.0 Exception in thread "main" java.lang.NullPointerException at alura_Curso.Funcionario.mostra(Funcionario.java:15) at alura_Curso.DadosFuncionario.main(DadosFuncionario.java:36) C:\Users\Daniel\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

package alura_Curso;

public class Funcionario {

String nome; 
double cpf;
String departamento;
Data dataEntrada; 
double salario;
Data nascimento;

void mostra() { 
System.out.println("\nNome : " + this.nome); System.out.println("Cpf : " + this.cpf); System.out.println("Data nascimento : " + this.nascimento.getFormatada()); System.out.println("Data de entrada : " + this.dataEntrada.getFormatada()); System.out.println("Departamento : " + this.departamento); System.out.println("Salário : " + this.salario);

}

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

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

int dia; 
int mes; 
int ano;

String getFormatada() { 
    return this.dia + "/" + this.mes + "/" + this.ano; }

public void preencheData(int dia, int mes, int ano) {         this.dia = dia; this.mes = mes; this.ano = ano;

}

}

public class DadosFuncionario {

public static void main(String[] args) {

Funcionario daniel = new Funcionario();

daniel.nome = "Daniel Ortega"; daniel.cpf = 123456; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniel.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0);
daniel.salario = 2000.0; 
daniel.recebeAumento(2000.0); daniel.calculaGanhoAnual(); daniel.mostra();

Funcionario daniela = new Funcionario();

daniela.nome = "Daniela Ortega"; daniela.cpf = 654321; daniel.nascimento = new Data(); daniel.nascimento.preencheData(0, 0, 0); daniela.departamento = "Administrativo"; daniel.dataEntrada = new Data(); daniel.dataEntrada.preencheData(0, 0, 0); 
daniela.salario = 4000.0; 
daniela.recebeAumento(500.0); daniela.calculaGanhoAnual(); 
daniela.mostra();

} }

famoso CRTL + C CRTL+V, repare os daniel nos dois daniel.dataEntrada que era para ser daniela.dataEntrada e no nascimento também daniel.nascimento era pra ser daniela.nascimento;

daniela.nome = "Daniela Ortega"; 
daniela.cpf = 654321; 
daniel.nascimento = new Data(); <---------------------------
daniel.nascimento.preencheData(0, 0, 0); <---------------------------
daniela.departamento = "Administrativo"; 
daniel.dataEntrada = new Data(); <---------------- 
daniel.dataEntrada.preencheData(0, 0, 0);  <-------------
daniela.salario = 4000.0; 
daniela.recebeAumento(500.0); daniela.calculaGanhoAnual(); 
daniela.mostra();