Em minha opinião o correto é os atributos serem privados (private) com uma interface pública (getters e setters) como você quer herdar na outra classe a renda com mais 10% basta você sobrescrever o método getRenda() com a porcentagem a mais que você desejar.
kritiuns
Minha opinião é um pouco diferente do nosso amigo
leandrobellini
eu criaria um método na classe Funcionario chamada calcularRenda() e sobrescreveria ele na classe FuncionarioBasico onde teria o valor alterado.
prefiro assim para deixar os getters e setters somente para seus fins ( pegar e setar ).
nel
kritiuns:
Minha opinião é um pouco diferente do nosso amigo
leandrobellini
eu criaria um método na classe Funcionario chamada calcularRenda() e sobrescreveria ele na classe FuncionarioBasico onde teria o valor alterado.
prefiro assim para deixar os getters e setters somente para seus fins ( pegar e setar ).
Se o percentual é fixo não vejo problema em ele ser adicionado no próprio getter. Dessa forma, a única coisa que teria de ser feito é sobrescrever o getter da variavél e fazer com que o retorno seja calculado, simples assim. Mas foi citado algo importante, crie os respectivos getters e setters e atribua o modificador private as variavéis, pois o encapsulamento é essencial em um caso como esse.
Abraços.
ribclauport
De acordo com o amigo, acredito que poderia ser algo assim certo…
Sim, muito simplista, não é ? Um dos objetivos do encapsulamento é exatamente esse, poder alterar o valor setado e/ou buscado. Poderia fazer isso no setter ou no getter, independente. Sobre o seu teste ribclauport, faltou apenas setar o valor da renda antes de executar o getter
Abraços.
ribclauport
“Opa” verdade…
Obrigado pela correção!
V
vitorfarias
Marca como [RESOLVIDO]
leandrobellini
Pessoal, obrigado pela ajuda!
Entendi perfeitamente as soluções propostas e realmente, devo usar mais o private e encapsular os dados
Só mais uma dúvida:
Porque o this. é importante?
Neste caso, haveria um erro pois estou acessando a varável nome do argumento e não do objeto??
public void setNome(String nome) {
// this.nome = nome;
nome = nome;
}
Obrigado pela ajuda ae pessoal, comecei com java e orientação a objetos essa semana.
ribclauport
Imagine que você está em uma praça, e você perde seu relógio, ae alguem grita “Alguém perdeu este relógio?”
Você grita “É meu!”, this seria o seu grito “É meu”, o grito do objeto anunciando ser dono daquela “propriedade”, ou seja, this quer dizer “intância do objeto corrente”,
sendo assim realmente você está correto pois quando se tem a situação exposta por ti em quê o nome da variável local (parametros de metodos são variáveis locais) com o mesmo nome da variável de instância, o this permite dizer que você está referenciando a variável do objeto e não a variável local denotada pelo parâmetro do método.