Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Atributo livre x Propriedade

Bom dia!

Estou com dificuldade de entender o seguinte:

Se protegemos as variáveis para que não seja simples acessá-las, qual o sentido de criar uma "propriedade" para deixar as variáveis como se não tivessem protegidas?

2 respostas
solução!

Execelente pergunta Filipe, isso tem haver com um conceito de orientação a objetos chamado "Encapsulamento", existem muitas vantagens em encapsular seu atributo.

Vale resaltar que o que permite a alteração é a property "setter" que não é sempre necessario que seja inserida no codigo, segue um exemplo de um codigo onde apenas inseri o "@property" (getter) e tentei alterar a variavel "base" (em branco) e em seguida ocorreu um erro.

Exemplo de codigo, demonstrando oque acontecem se encapsulamos o codigo usando uma property )

Agora perceba o que aconteceu com a altura que não recebe essa mesma property (getter):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O codigo se mantem caso eu faça uma alteração, ou seja está totalmente desprotegia e sem validação.

Perceba também no exemplo a seguir, que mesmo com o setter sua aplicação ficara mais segura pois ao definir ou redefinir um atributo onde ele foi aplicado, você consegue fazer validações, como no exemplo abaixo que verifica se o valor é maior que zero, caso contrario mostra uma mensagem.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

DICA! Segue um artigo que explica muito bem isso, usando Python

Espero que ajude, bons estudos!

Muito bem explicado! Entendi perfeitamente e acredito que tenha ajudado outras pessoas também com a mesma dúvida.

Me ajudou muito. Obrigado!