Upload
lamond
View
27
Download
0
Embed Size (px)
DESCRIPTION
Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre. Paulo J. Azevedo [email protected] Departamento de Informática Universidade do Minho. Objectivos. Introduzir o novo paradigma (disciplina) de programação orientado aos objectos. - PowerPoint PPT Presentation
Citation preview
Métodos Programação II 1
Métodos de Programação II(Mestrado Integrado em Engenharia de Comunicações)
1º Ano, 2º Semestre
Paulo J. [email protected]
Departamento de Informática
Universidade do Minho
Métodos Programação II 2
Objectivos• Introduzir o novo paradigma (disciplina) de programação
orientado aos objectos.• Programação pela definição de unidades
computacionais representativas de entidades do mundo real (do problema a resolver).
• Programação desenvolve-se em torno dos dados em vez de se concentrar apenas nos procedimentos.
• Programar = definir objectos.• Computação = interacção entre objectos.• Programa = conjunto de classes, são os templates dos
nossos objectos.• Programação orientada aos objectos em JAVA5 (jdk1.5)
Métodos Programação II 3
Avaliação e Bibliografia
• Dois testes teóricos (ou exame)
• Um projecto prático (em grupo)• Nota Final = 0.6 x componente_teórica + 0.4 x componente_prática• Créditos mínimos em ambas as componentes = 10 valores!• JAVA5 e Programação por Objectos
F. Mário Martins, Editora FCA, Série Tecnologias de Informação • Programação Orientada aos Objectos em JAVA5
F. Mário Martins, Notas Pedagógicas, revisão de 2007
• Notas Teóricas MPII
Paulo Azevedo (estes acetatos apresentados nas aulas)• Notas colocadas na página da disciplina
Métodos Programação II 4
Porquê programação orientada aos objectos ?
• Modularidade• Reutilização• Abstracção (Tipos abstractos de Dados)
Métodos Programação II 5
Módulos• Módulo como abstracção procedimental• Programação continua orientada aos procedimentos• O que fazer sobre a utilização dos dados?
Métodos Programação II 6
Interdependência entre módulos
• Continua descurada a questão da privacidade dos dados!• É necessário garantir a independência do módulo em relação ao contexto.• Isto é, preservar a autonomia do módulo.
• Necessidade da abstracção dos dados.
Métodos Programação II 7
Abstracção e Data Hiding
• Módulo: – define uma estrutura de dados interna.– com procedimentos que constituem o único código com acesso
às suas variáveis internas.– Estes procedimentos não acedem a outras variáveis que não
façam parte do módulo.– Data Hiding: estrutura de dados local.– Procedimentos: serviços disponibilizados.– Temos, finalmente, abstracção de dados
em vez de abstracção de controlo
Métodos Programação II 8
Encapsulamento
• Módulos são “cápsulas” de software• Escondem (do exterior) detalhes dos dados e de
implementação. • Verdadeiramente reutilizáveis
e autónomas. • São abstracções de dados• Cada módulo tem uma interface:
i.e. conjunto de métodos invocáveis
do exterior, e uma implementação.
Métodos Programação II 9
Objecto• Unidade computacional básica na concepção de
software.• Concentra as propriedades anteriormente apresentadas,
nomeadamente: – Independência de contexto (permite reutilização)
– Abstracção de dados (garante abstracção)
– Encapsulamento (garante protecção)
– Modularidade (permite composição das partes)
• É a representação abstracta de uma entidade autónoma:– Identidade única– Conjunto de atributos que definem o estado do objecto– Conjunto de operações (de uso interno e externo) que definem o comportamento do objecto
Métodos Programação II 10
Encapsulamento
• Objecto como entidade estanque contendo uma estrutura de dados interna e privada.
• Exemplo de um objecto representativo de um número Complexo, apresentando-se a sua estrutura e comportamento.
Métodos Programação II 11
Mensagens• Em POO computação é obtida por interacção entre objectos através de
mensagens.• Interacção entre objectos através de mensagens resulta a computação e
respectivas transições dos estados.
• O objecto A envia uma mensagem a B durante a execução do seu método a1(). O objecto B executa o método b1(). A espera que B envie o resultado de b1() e só após a recepção deste resultado finaliza a execução do seu próprio método a1().
Métodos Programação II 12
Tipos de Mensagens
• Alteração de estado sem retorno:– receptor.mensagem();– receptor.mensagem(a1,a2,…,na);
• Mensagens como interrogações:– Resultado = receptor.mensagem();– Resultado=receptor.mensagem(a1,a2,…,na);
Métodos Programação II 13
Exemplo
• stack1 = new Stack();• int tam = stack1.size();• Elem = stack1.top();• stack1.push(12);
A independência das mensagens em relação aos métodos permite um grau de abstracção interessante.Podemos ter um conjunto diferente de objectos a reconhecer a mesma mensagem mas a executar o seu próprio método (implementação)
Métodos Programação II 14
Instâncias & Classes
• Para garantir que todos os objectos do mesmo tipo tenham a mesma estrutura e o mesmo comportamento recorremos a um objecto especial: classes
• Servem para:– Conter a estrutura e comportamento dos objectos do mesmo
tipo,– Criar os respectivos objectos particulares (com o mesmo
comportamento e estrutura).
• Objectos são então instâncias de uma classe.• A classe garante coerência entre objectos criados a
partir de si.
Métodos Programação II 15
Exemplo
Exemplo em JAVA:
ponto1 = new Ponto2D();ponto2 = new Ponto2D();
cx = ponto1.cx();cy = ponto1.cy();ponto1.incX(1);ponto1.incY(2);
ponto2.incX(3);