Programação Orientada a Obrijetos
1238 palavras
5 páginas
IFRO – Instituto Federal de Rondônia – Campus VilhenaDisciplina: 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 é