1
resposta

método depositar() diferente do professor

Pensei em uma outra maneira de implementar o método depositar(). Gostaria de saber se ele está adequado ao paradigma de orientação a objetos.

def depositar(self):
    self.valor = float(input("Qual valor deseja depositar?"))
    self.saldo += self.valor

No método que criei eu não passei o parâmetro "valor" como o professor. Gostaria de saber se isso está correto no mundo OO?

1 resposta

Olá Eduardo, tudo bem com você?

O modo apresentado estamos concedendo ao usuário acesso direto a um atributo de um objeto, nesse caso ao atributo self.valor.

Quando fazemos o uso do self estamos fazendo referência ao espaço de memória onde o objeto foi salvo, assim estamos proporcionando acesso ao atributo deste objeto; fazendo desta forma estaremos ferindo as regras de encapsulamento da orientação ao objeto, onde o acesso e a modificação de atributos deverá ser realizadas através dos métodos da classe, note que a entrada do usuário é salva diretamente no atributo do objeto.

Assim, é recomendado que o valor informado pelo usuário seja passado através do parâmetros do método da classe. Como por exemplo:

def deposita(self, valor):
    self.saldo += valor

Para aprimorar ainda mais seu aprendizado sobre Orientação a objeto, recomendo a leitura do seguinte artigo, onde explica sobre o encapsulamento dos atributos e apresenta um panorama sobre os principais pontos da Orientação a objeto fazendo o uso de exemplos.

Fico à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!