150 likes | 231 Views
Métodos de Programação II (Mestrado Integrado em Engenharia de Comunicações) 1º Ano, 2º Semestre. Paulo J. Azevedo pja@di.uminho.pt Departamento de Informática Universidade do Minho. Objectivos. Introduzir o novo paradigma (disciplina) de programação orientado aos objectos.
E N D
Métodos de Programação II(Mestrado Integrado em Engenharia de Comunicações)1º Ano, 2º Semestre Paulo J. Azevedo pja@di.uminho.pt Departamento de Informática Universidade do Minho Métodos Programação II
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
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
Porquê programação orientada aos objectos ? • Modularidade • Reutilização • Abstracção (Tipos abstractos de Dados) Métodos Programação II
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
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
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
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
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
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
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
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
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
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
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); Métodos Programação II