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

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 = "0001112223";
    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.

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.

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);
}

}

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

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…

[code]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();[/code]

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

[quote]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.[/quote]

Fiz o exercio quase completo:

Vejam:

[code]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);

}




}[/code]

[code]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);
 
 }

}[/code]

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

[code]package funcionario;

public class Data {

int dia;
int mes;
int ano;

}[/code]

Queria que alguém comentasse algo.

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

mas tá funcionando bem…

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