AULA 3

Diagramas de Classes


Encapsulamento


Encapsular é empacotar dados e operações, de modo que toda a obtenção e modificação desses dados sejam feitas pelas operações.

No exemplo do fogão, vamos considerar um objeto “Botijão de Gás”. Esse objeto foi definido com a responsabilidade “fornecer gás”. Essa responsabilidade foi convertida em uma operação da classe “BotijãoDeGás” chamada “FornecerGás()”.

Então...o que é necessário um botijão de gás ter para conseguir fornecer gás? Ué!?! Simplesmente gás! Pois então! Um objeto botijão de gás deve ter um dado que descreveria a quantidade de gás que ele possui. A partir dessa quantidade, ele poderia “FornecerGás()” se pudesse e quando isso ocorresse ele mesmo cuidaria de reduzir a sua quantidade de gás. Isso é encapsular!

Um botijão de gás tem um atributo “quantidadeDeGás”. Esse atributo está encapsulado, pois somente a operação “FornecerGás()” age sobre ele. Isso gera uma das maiores vantagens da programação OO sobre a programação tradicional, pois é incomparavelmente mais simples garantir a integridade dos dados, visto que somente as operações da classe do objeto manipulam os dados do objeto.

Mas se um botijão de gás vai fornecendo gás, uma hora o gás acaba. Se eu não posso modificar a quantidade de gás, como faço para “reabastecê-lo”? Nesse caso você deve definir uma nova responsabilidade para o próprio botijão que seria “reabastecer”.

 

Sergio Aschar - Fernando Augusto Prado - Warley Silva