dúvida: curso fj-11 caelum exercício 4.12

7 respostas
marcusluiz83

Boa noite a todos. Este é meu primeiro tópico. Procurei nos tópicos antigos a minha dúvida, mas não encontrei. Me desculpem se eu não tiver procurado direito. Eis a minha dúvida:

Exercício 4.12

"Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário, a data de entrada no banco, seu RG e um valor booleano que indique se o funcionário está na empresa no momento ou se já foi embora.

Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta o salario do funcionário de acordo com o parâmetro passado como argumento. Crie, também, um método demite, que não recebe parâmetro algum, só modifica o valor booleano indicando que o funcionário não trabalha mais aqui.

A idéia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário faz."

Não entendi direito como utilizar os métodos “bonifica” e “demite”

Sinceramente, me confundi um pouco com o que deve ser feito, mas fiz da seguinte maneira (sem utilizar o “demite”):


class Funcionario {

String funcionario;

String departamento;

double salario;

String admissao;

String rg;

boolean ativo;

double bonifica;

double aumento;
void bonifica(double aumento) {

    void demite() {
}

}


class TestaFuncionario {

public static void main(String[] args) {

Funcionario f1 = new Funcionario();
f1.funcionario = "Marcus";
    f1.departamento = "Supervisão";
    f1.salario = 1100;
    f1.admissao = "01/08/08";
    f1.rg = "[telefone removido]";
    f1.bonifica = 500;
    f1.ativo = true;
    f1.aumento = f1.salario + f1.bonifica;

    System.out.println("Nome do funcionário:" + f1.funcionario);
    System.out.println("Departamento:" + f1.departamento);
    System.out.println("Salário atual:" + f1.salario);
    System.out.println("Data de admissão:" + f1.admissao);
    System.out.println("RG:" + f1.rg);
    System.out.println("Bonificação:" + f1.bonifica);
    System.out.println("Salário com bonificação:" + f1.aumento);
    System.out.println("Funcionário ativo:" + f1.ativo);
}

}


Está mais ou menos de acordo com o que deve ser feito? Como utilizo corretamente os métodos solicitados? Aguardo retorno e agradeço pela ajuda.

7 Respostas

B

A declaração dé métodos é assim:

[modificadores] tipo_do_retorno nomeDoMétodo(TipoDoParametro parametro1, TipoDoParametro parametro2...) { corpo do método; }

por exemplo:

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

public é um modificador de visibilidade, diz que o método é acessível por qualquer outra classe.
void é um tipo de retorno vazio, o método não retorna nada.
this é o próprio objeto que você está trabalhando, ele acessa o atributo salario dele, e o soma com o aumento.

E

Boa noite Marcos,

Coloquei aqui o exercicio completo, acredito que esta certo deacordo com o enunciado.

public class Funcionario {

// atributos

String nome;

String depto;

double salario;

Data dataEntrada; // classe data criada e foi feita uma composição para funcionario

String rg;

boolean estaNaEmpresa = true;// inicializei com true, por padrão boolean é inicializada com valor false;
public void bonifica(double aumento) {
	this.salario += aumento;// O salario é somado com valor passado como argumento e atribuido ao propria variavel salario
}

public boolean demite() {
	return estaNaEmpresa = false;// se for chamado o metodo demite, a variavel estaNaEmpresa retorna como false. 
}
    // Imprime o resultado da chamado do metodo e os valores das variaveis 
public void mostra() {
	System.out.println("Nome: " + this.nome);
	System.out.println("Depto: " + this.depto);
	System.out.println("Salario: " + this.salario);
	System.out.println("RG: " + this.rg);
	System.out.println("Esta na empresa: " + this.estaNaEmpresa);
	System.out.println("Dia: "+this.dataEntrada.dia);
	System.out.println("Mes: "+this.dataEntrada.mes);
	System.out.println("Ano: "+this.dataEntrada.ano);
}

}

marcusluiz83

Pessoal, boa noite e desculpem pela demora pelos agradecimentos à boa vontade de vocês. Consegui esclarecer minhas dúvidas. Muito obrigado.

fmoraislg

Alguém poderia me ajudar a fazer o exercício FJ11 4.12

Quando vi o exercio achei fácil, mas quando começei a fazer...

package funcionario;


public class Funcionario {

     String nome;
     String depto;
     double salario;
     String dataEntrada;
     String rg;
     boolean ativo;
     
     
     
     public void bonifica(double valor){
         double novoSalario = this.salario + valor;
         this.salario = novoSalario;
     }
    
     
     public boolean demite();

Fiz essa parte e não consigo passar daqui, dando erro no boolean.

4.12

1) Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário
(double), a data de entrada no banco (String), seu RG (String) e um valor booleano que indique se o
funcionário está na empresa no momento ou se já foi embora.
Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que
aumenta o salario do funcionário de acordo com o parâmetro passado como argumento. Crie, também, um
método demite, que não recebe parâmetro algum, só modifica o valor booleano indicando que o funcionário
não trabalha mais aqui.
A idéia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário
faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.

2) Transforme o modelo acima em uma classe Java. Teste-a, usando uma outra classe que tenha o main. Você
deve criar a classe do funcionário chamada Funcionario, e a classe de teste você pode nomear como quiser.
A de teste deve possuir o método main.

fmoraislg

Fiz o exercio quase completo:

Vejam:

package funcionario;


public class Main {

    
    public static void main(String[] args) {

        Funcionario fun = new Funcionario();
        Data data = new Data();
        

        //valores do objeto fun
        fun.nome="Duke Jr";
        fun.dataEntrada="23/05/2010";
        fun.depto="Programacao";
        fun.rg="1999110";
        fun.salario=510.00;
        fun.ativo=true;
        fun.bonus=1000;
        

        fun.mostra(); //mostra os dados atribuidos ao programa.

        if (fun.ativo){
        fun.bonifica(2000);
        System.out.println("Esta trabalhado e ganhou um bonus! ");
        } else {
        System.out.println("Naum esta trabalhando!");
        }
        System.out.println("Salario: " + fun.salario);

        

        //cria um novo objeto e atribui valores.
        Funcionario fun2 = new Funcionario();

        fun2.nome="Fiodor Jr";
        fun2.dataEntrada="12/04/2011";
        fun2.depto="Programacao em java";
        fun2.rg="99110";
        fun2.salario=1510.00;
        fun2.ativo=false;
        fun2.bonus=1000;

        System.out.println("-------------------------------------------");

        fun2.mostra();

        //aqui da bonus se tiver trabalhando
        if (fun2.ativo){
            fun2.bonifica(2000);
            System.out.println("Esta trabalhado e ganhou um bonus! ");
        } else {
            System.out.println("Naum esta trabalhando!");
        }

        System.out.println("Salario: " + fun2.salario);

    }




    }
package funcionario;


public class Funcionario {

     String nome;
     String depto;
     double salario;
     String dataEntrada;
     String rg;
     boolean ativo;
     double bonus;



     //metodo de bonus
     void bonifica(double valor){
         double novoSalario = this.salario + valor;
         this.salario = novoSalario;
     }



     //aqui resume e mostra os dados chamados no main
     void mostra() {
        System.out.println("Nome: " + this.nome);
        System.out.println("Admissao: " + this.dataEntrada);
        System.out.println("Departamento: " + this.depto);
        System.out.println("Doc Id: " + this.rg);
        System.out.println("Salario: " + this.salario);
        System.out.println("Bonus: " + this.bonus);
     
     }

}

Só não consegui relacionar esta classe as outras como pede no exercício.

package funcionario;


public class Data {

    int dia;
    int mes;
    int ano;


}

Queria que alguém comentasse algo.

andbecker

o exercicio esta completo, quer dizer, faltou o metodo demite.

mas tá funcionando bem…

fmoraislg

Poderia me ajudar a fazer esse método Demite? Eu não entendi :?

Criado 1 de setembro de 2009
Ultima resposta 2 de set. de 2010
Respostas 7
Participantes 5