class AtualizaFuncionario {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
Funcionario f2 = new Funcionario();
//Funcionario f2 = f1;
f1.idFuncionario = 0001; // atributo da classe funcionario
f1.departamento = "Informatica";
// f1.dataEntrada = "20/12/2016";
f1.dataEntrada = new DataFuncionario();
f1.dataEntrada.preencheData(20, 12, 2016);
f1.salario = 1000;
f1.recebeAumento(500); //metodo da classe Funcionario
f1.nome.nomeFuncionario = "Joao das Coves"; // attributos da Classe DadosFuncionario
f1.cpf.cpfFuncionario = "001.002.003.004-05";
f1.rg.rgFuncionario = "7.123.256";
f1.rua.ruaEndereco = "Rua do Sobe e Desce"; //Attributos da classe Endereco
f1.bairro.bairroEndereco = "Nuinca Aoparece";
f1.cidade.cidadeEndereco = "Claraval";
f1.estado.estadoEndereco = "MG";
f1.cep.cepEndereco = "123456000";
f2.idFuncionario = 0002; // atributo da classe funcionario
f2.departamento = "Informatica 2";
// f2.dataEntrada = "20/11/2016";
f2.dataEntrada = new DataFuncionario();
f2.dataEntrada.preencheData(20, 11, 2016);
f2.salario = 2000;
f2.recebeAumento(600); //metodo da classe Funcionario
f2.nome.nomeFuncionario = "Luis das Coves"; // attributos da Classe DadosFuncionario
f2.cpf.cpfFuncionario = "006.007.008.009-10";
f2.rg.rgFuncionario = "8.123.256";
f2.rua.ruaEndereco = "Rua do Sobe e Desce 2"; //Attributos da classe Endereco
f2.bairro.bairroEndereco = "Nuinca Aoparece 2";
f2.cidade.cidadeEndereco = "Claraval 2";
f2.estado.estadoEndereco = "MG";
f2.cep.cepEndereco = "123456000";
// if (f1 == f2) {
// System.out.println("iguais");
// } else {
// System.out.println("diferentes");
// }
//
// System.out.println("salario atual:" + f1.salario);
// System.out.println("ganho anual:" + f1.calculaGanhoAnual());
f1.mostra();
f2.mostra();
}
}
--------
// isto é um objeto
class Funcionario {
int idFuncionario;
String departamento;
// String dataEntrada;
DataFuncionario dataEntrada; //DataFuncionario vem da classe DataFuncionario
double salario;
DadosFuncionario nome = new DadosFuncionario();
DadosFuncionario cpf = new DadosFuncionario();
DadosFuncionario rg = new DadosFuncionario();
Endereco rua = new Endereco();
Endereco bairro = new Endereco();
Endereco cidade = new Endereco();
Endereco estado = new Endereco();
Endereco cep = new Endereco();
// método recebe aumento
void recebeAumento(double valorAumento) {
this.salario += valorAumento;
};
//método calcula ganho anual
// este metodo não pode ser void porque precisa retornar parametro.
double calculaGanhoAnual() {
double salarioAnual = this.salario * 12;
return salarioAnual;
};
void mostra() {
System.out.println("idFuncionario: " + this.idFuncionario);
System.out.println("departamento : " + this.departamento);
System.out.println("dataEntrada : " + this.dataEntrada);
System.out.println("salario : " + this.salario);
// System.out.println("nome : " + this.nome);
// System.out.println("cpf : " + this.cpf);
// System.out.println("rg : " + this.rg);
//
// System.out.println("rua : " + this.rua);
// System.out.println("bairro : " + this.bairro);
// System.out.println("cidade : " + this.cidade);
// System.out.println("estado : " + this.estado);
// System.out.println("cep : " + this.cep);
System.out.println("nome : " + nome.nomeFuncionario);
System.out.println("cpf : " + cpf.cpfFuncionario);
System.out.println("rg : " + rg.rgFuncionario);
System.out.println("rua : " + rua.ruaEndereco);
System.out.println("bairro : " + bairro.bairroEndereco);
System.out.println("cidade : " + cidade.cidadeEndereco);
System.out.println("estado : " + estado.estadoEndereco);
System.out.println("cep : " + cep.cepEndereco);
System.out.println("salario atual: " + this.salario);
System.out.println("ganho anual: " + this.calculaGanhoAnual());
System.out.println("Dia: " + this.dataEntrada.diaDataFuncionario);
System.out.println("Mês: " + this.dataEntrada.mesDataFuncionario);
System.out.println("Ano: " + this.dataEntrada.anoDataFuncionario);
System.out.println("Data de entrada: " + this.dataEntrada.getFormatada());
};
};
-----
class Empresa {
Funcionario[] empregados;
String cnpj;
int livre = 0;
void adiciona(Funcionario f) {
this.empregados[this.livre] = f;
this.livre++;
};
void mostraEmpregados() {
for (int idx = 0; idx < this.livre; idx++) {
System.out.println("Funcionário na posição: " + idx);
System.out.println("idFuncionario: " + this.empregados[idx].idFuncionario);
System.out.println("departamento : " + this.empregados[idx].departamento);
System.out.println("nome : " + this.empregados[idx].nome);
System.out.println("cpf : " + this.empregados[idx].cpf);
System.out.println("Salario R$" + this.empregados[idx].salario);
}
};
}
-----------------
class AtualizaEmpresa {
public static void main (String[] args) {
Empresa empresa = new Empresa();
empresa.empregados = new Funcionario[10];
// assim
// Funcionario f1 = new Funcionario();
// f1.salario = 1000;
// f1.dataEntrada = new DataFuncionario();
// empresa.adiciona(f1);
// Funcionario f2 = new Funcionario();
// f2.salario = 1700;
// f2.dataEntrada = new DataFuncionario();
// empresa.adiciona(f2);
//ou assim
for (int idx = 0; idx < 5; idx++) {
Funcionario f = new Funcionario();
f.salario = (1000 + (idx * 100));
empresa.adiciona(f);
};
//
// empresa.empregados[0].mostra();
// empresa.empregados[1].mostra();
empresa.mostraEmpregados();
};
};
---
Quando executo AtualizaFuncionario, é listado todos os funcionario inseridos, se na sequencia eu chamar AtualizaEmpresa apenas o salario é demonstrado corretamente....onde esta o erro ??
C:\Caca\Alura\CursoJava\JavaIPrimeirosPassos\programas>java AtualizaEmpresa Funcionário na posição: 0 idFuncionario: 0 departamento : null nome : DadosFuncionario@15db9742 cpf : DadosFuncionario@6d06d69c Salario R$1000.0 Funcionário na posição: 1 idFuncionario: 0 departamento : null nome : DadosFuncionario@7852e922