Programação Orientada a Obrijetos

1238 palavras 5 páginas
IFRO – Instituto Federal de Rondônia – Campus Vilhena
Disciplina: Engenharia de Software - 1º módulo - 2014
Professor: Bruno Rover Dal Prá(bruno.dalpra@ifro.edu.br)

POO – Programação
Orientada a Objetos
Prof. Bruno Rover Dal Prá

1

Introdução
Vamos verificar um problema de não se usar encapsulamento em nossos sistemas.
Um dos problemas mais simples que temos é um sistema de contas que tem um método saca que permite sacar mesmo que o limite tenha sido atingido. A seguir você está a classe Conta:

2

Introdução

3

Introdução
A classe a seguir mostra como é possível ultrapassar o limite usando o método saca:

4

Introdução
Podemos incluir um if dentro do nosso método saca() para evitar a situação que resultaria em uma conta em estado inconsistente, com seu saldo abaixo do limite. básica.
Apesar de melhorar bastante, ainda temos um problema mais grave: ninguém garante que o usuário da classe vai sempre utilizar o método para alterar o saldo da conta. O código a seguir ultrapassa o limite diretamente:
5

Introdução

6

Introdução
Como evitar isso? Uma ideia simples seria testar se não estamos ultrapassando o limite toda vez que formos alterar o saldo:

7

Introdução

8

Introdução
Esse código iria se repetir ao longo de toda nossa aplicação e, pior, alguém pode esquecer de fazer essa comparação em algum momento, deixando a conta na situação inconsistente.
A melhor forma de resolver isso seria forçar quem usa a classe Conta a invocar o método saca e não permitir o acesso direto ao atributo.

9

Introdução

10

Introdução
Marcando um atributo como privado, fechamos o acesso ao mesmo em relação a todas as outras classes, fazendo com que o seguinte código não compile:

11

Introdução
Na orientação a objetos, é prática quase que obrigatória proteger seus atributos com private.
Cada classe é responsável por controlar seus atributos, portanto ela deve julgar se aquele novo valor é

Relacionados