A minha duvida é a seguinte: O meu "setTipo(2)" (o tipo referente a Diretor) não está efetuando a operação correta, a saída ocorre como se tivesse um "f3.getSalario * 2 + 1000" sendo que o que eu quero é apenas "f3.getSalario + 1000", onde está o erro no meu código?
Segue meu código:
public class FuncionarioTeste {
private String nome;
private String cpf;
private double salario;
private int tipo; // 0 - Funcionario Comum, 1 - Gerente, 2 - Diretor;
public String getNome() {
return nome;
}
public double getBonificacao() {
if (this.tipo == 0) { // Funcionario Comum
return this.salario * 0.1;
} else if (this.tipo == 1) { // Gerente
return this.salario * 0.2;
} else { // Diretor
return this.salario + 1000;
}
}
public void setTipo(int tipo) {
this.tipo = tipo;
}
public int getTipo() {
return tipo;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
}
// Teste.java
public class Teste {
public static void main(String[] args) {
FuncionarioTeste f1 = new FuncionarioTeste();
f1.setSalario(2000);
System.out.println(f1.getTipo());
System.out.println(f1.getSalario() + f1.getBonificacao());
FuncionarioTeste f2 = new FuncionarioTeste();
f2.setTipo(1);
f2.setSalario(3000);
System.out.println(f2.getTipo());
System.out.println(f2.getSalario() + f2.getBonificacao());
FuncionarioTeste f3 = new FuncionarioTeste();
f3.setTipo(2);
f3.setSalario(4000);
System.out.println(f3.getTipo());
System.out.println(f3.getSalario() + f3.getBonificacao());
}
}
A saída:
0 2200.0 1 3600.0 2 9000.0