Propagação electromagnética
Aula 3: Conceitos Básicos II: Encapsulamento e Polimorfismo ¡
Introdução à modelação orientada por objectos e ao UML o Classes e relacionamento entre classes: associação, agregação e composição
Conceitos Básicos II: Encapsulamento e Polimorfismo
O encapsulamento proíbe-nos de mexer directamente nos dados internos de um objecto. Para além disso, temos a possibilidade de impor um conjunto de condições que todos os candidatos a instâncias de uma classe terão que obedecer – no exemplo da conta à ordem _saldo_ teria que ser superior a 0 (ou a outra qualquer quantidade pré-definida). A esta condição dá-se o nome de condição invariante de instância. Esta condição deverá ser verificada na altura de criação de instâncias e na altura das suas alterações.
Como consequência do encapsulamento, todas as comunicações com os objectos são feitas através do envio de mensagens.
Ex. Em Smalltalk, para saber o saldo da conta1 escreve-se numa janela de texto: conta1 saldo
receptor mensagem Às vezes as mensagens têm argumentos. Na expressão conta1 deposita: 100 http://w3.ualg.pt/~jvolivei/poo/ POO 2002/2003 T3 - 1/7
Programação Orientada por Objectos jvo, fs
deposita: 100 é a mensagem, deposita: é o selector e 100 é o argumento.
Uma vez que o objecto responde a uma mensagem em função da sua classe, objectos de classes diferentes podem responder de maneira diferente à mesma mensagem. O resultado da expressão a+1 depende da classe de a. Uma vez que a operação + pode ter “várias formas”, diz-se polimórfica.
Algumas das princípais vantagens da POO: Legibilidade (ou inteligibilidade): Cada classe e seus objectos maximiza a compatibilidade entre a representação técnica e alguma entidade do problema; ¡ ¡
Manutenção: Uma classe é uma especificação mais estável do que uma função. Temos uma entidade mais coesa que pode ser mais facilmente reutilizada
Princípio do encapsulamento: O programador de uma classe