15
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. Azevedo [email protected] Departamento de Informática Universidade do Minho

Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

  • 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

Page 1: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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

Page 2: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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)

Page 3: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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

Page 4: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

Métodos Programação II 4

Porquê programação orientada aos objectos ?

• Modularidade• Reutilização• Abstracção (Tipos abstractos de Dados)

Page 5: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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?

Page 6: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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.

Page 7: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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

Page 8: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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.

Page 9: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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

Page 10: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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.

Page 11: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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().

Page 12: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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);

Page 13: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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)

Page 14: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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.

Page 15: Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre

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);