double getBonificacao(){
return this.salario +salario*0.10;
}
insira seu código aqui
double getBonificacao(){
return this.salario +salario*0.10;
}
insira seu código aqui
Você pode exibir a declaração da classe? Ela estende de alguma outra? Esse método é uma sobrescrita (override)?
Os getters e setters em 98% das vezes se usa this para referenciar atributos da própria classe.
O this nessa referencia não é obrigatório.
Olá Gean,
O this
faz referencia a um atributo da própria classe, enquanto o super
vai fazer referência a um objeto da classe mãe.
Nesta aula, o método getBonificacao
é usado em mais de uma classe. Vejamos:
Na classe Funcionario
o código é feito com o this
pois o salario
referenciado é o declarado na própria classe. Se você tentar usar o super
, não vai compilar pois a classe Funcionario não possui classe mãe explicita, logo não possui tal referência.
public class Funcionario {
private String nome;
private String cpf;
protected double salario;
public double getBonificacao() {
return this.salario * 0.1;
}
Já na classe Gerente
, o método getBonificacao
faz referência aos 2 atributos salario
: primeiro ao da própria classe Gerente
e em seguida ao da classe mãe, Funcionario
.
public class Gerente extends Funcionario {
private int senha;
public void setSenha(int senha) {
this.senha = senha;
}
public boolean autentica(int senha) {
if(this.senha == senha) {
return true;
} else {
return false;
}
}
public double getBonificacao() {
return (this.salario * 0.1) + super.salario;
}
}
O this.salario
refere-se ao salário do objeto Gerente, e o super.salario
refere-se ao salario original existente na classe mãe Funcionario
.
Mas quando usar um e quando usar outro?
Digamos que seu Gerente tem um valor de salário de 2000 reais, que é diferente do padrão estabelecido na classe mãe que seria de 1000 reais. Ao atribuir qualquer comportamento ao salário, como o cálculo de 10% de bonificação por exemplo, ao usar o super
você pode calcular um valor errado pois seria calculado 10% em cima do salário padrão (1000) e não do salário do Gerente (2000).
Por isso deve tomar cuidado onde usar o this
e onde usar o super
.
Espero ter ajudado!! Bons estudos!!