Programação Estruturada vs Programação Orientada a Objetos(POO)

Views:
 
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Introdução à programação orientada por objetos :

Introdução à programação orientada por objetos Trabalho realizado por: Diana Almeida e João Oliveira Linguagens de Programação Técnico de Informática de Gestão 21/01/2013

Índice 1/2:

Índice 1/2 Programação Estruturada Vantagens vs Desvantagens (Programação Estruturada) Estruturas Programação Orientada a Objetos (POO) POO- Conceitos (Classe) Classe ... um pouco mais. POO- Conceitos (Abstração) POO- Conceitos (Hierarquização) POO- Conceitos (Encapsulamento) Encapsulamento ... um pouco mais.

Índice 2/2:

Índice 2/2 POO- Conceitos (Herança) Tipos de Herança POO- Conceitos (Polimorfismo) Vantagens vs Desvantagens (POO) Classes Abstratas Métodos Abstratos Exemplo de Classes e Métodos Abstratos Evolução Histórica da POO Webgrafia

Programação Estruturada :

Programação Estruturada Programação estruturada é uma forma de programação de computadores que defende que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interacção . Tendo, na prática, sido transformada na Programação modular, a Programação estruturada orienta os programadores para a criação de estruturas simples nos seus programas, usando as subrotinas e as funções. Foi a forma dominante na criação de software anterior à programação orientada por objetos. A Programação Estruturada é muito influente, uma vez que grande parte das pessoas ainda aprendem programação através dela. Para resolução de problemas relativamente simples e diretos, esta programação é muito eficiente.

Programação Estruturada :

Programação Estruturada (exemplo de código programação estruturada em python)

Vantagens vs Desvantagens (Programação Estruturada):

Vantagens vs Desvantagens (Programação Estruturada) Vantagens Provê um melhor controle sobre o fluxo de execução do código, quando comparada com a programação imperativa. É fácil de se entender, sendo amplamente usada em cursos introdutórios de programação. Desvantagens Ainda se foca em como a tarefa deve ser feita e não em o que deve ser feito. Tende a gerar códigos confusos, onde tratamento dos dados são misturados com o comportamento do programa.

Estruturas:

Estruturas • Estruturas de sequência: Onde uma tarefa é executada após a outra, linearmente. • Estruturas de decisão: Onde, a partir de um teste lógico, determinado trecho de código é executado, ou não. • Estruturas de iteração: Onde, a partir de um teste lógico, determinado trecho de código é repetido por um número finito de vezes.

Programação Orientada a Objetos (POO):

Programação Orientada a Objetos (POO) A Programação Orientada a Objectos foi criada com vista a simular o mundo real dentro de um computador, e para isso utiliza os objetos. Desta forma, o programador pode modelar os objectos e a sua interação.

Programação Orientada a Objetos (POO) - exemplo:

Programação Orientada a Objetos (POO) - exemplo (Exemplo de código de POO)

POO - Conceitos (Classe):

POO - Conceitos (Classe) Classe As classes são declarações de objectos ou também se poderiam definir como abstracções de objectos. O objecto é uma instância de uma determinada classe, o que significa que ele possui o comportamento e as características definidos pela classe para suas instâncias, este processo é chamado de instanciação . Ex.: Os objetos Eddie Vedder e Kurt Cobain , apesar de serem diferentes, derivam da mesma classe Pessoa . Representação Uma classe é representada por um rectângulo dividido em três partes: - Na primeira está o nome da classe; - Na segunda estão os atributos dos objectos descritos na classe; - Na terceira estão os métodos desses objectos.

Classe ... um pouco mais :

Classe ... um pouco mais um pouco mais ... Os objectos de uma determinada classe não são iguais. A sua similaridade consiste apenas no facto de que possuem propriedades idênticas. No instante em que um objeto é instanciado, é reservado um espaço em memória para ele automaticamente executado seu construtor . A partir deste momento o objeto está pronto para ser utilizado. Quando o objecto é eliminado ele automaticamente executa o seu destrutor .

POO - Conceitos (Abstração):

POO - Conceitos (Abstração) Abstração É a habilidade de se concentrar nos principais aspectos de um grupo de objetos, em vez de se preocupar com as suas especificações. Ex.: Para entendermos o funcionamento das plantas, dividimo-las em três partes básicas: raiz, caule e folhas. Estudamos cada uma de suas partes, abstraindo as demais. Para cada parte, identificamos funções diferentes e bem delimitadas: 􀂅 - A raiz é responsável pela absorção de água e sais minerais, 􀂅 - O caule transporta os materiais colectados para as folhas e estas, através destes materiais fornecidos 􀂅 - A folhas produzem, através de fotossíntese, alimento para toda a planta.

POO - Conceitos (Hierarquização):

POO - Conceitos (Hierarquização) Hierarquização Depois de dividirmos uma forma complexa em várias partes, é comum hierarquizarmos estas mesmas partes, ou seja, ordená-las de uma certa forma. Ex: Um computador pode ser subdividido, por exemplo, em três componentes principais: CPU, vídeo e teclado. Cada um destes componentes pode ser dividido por sua vez em outras partes. Uma CPU pode ser dividida em memória RAM, memória ROM, processador, controlador de DMS, etc. Cada um destes itens, por sua vez podem também ser divididos em componentes mais específicos.

POO - Conceitos (Encapsulamento):

POO - Conceitos (Encapsulamento) Encapsulamento Encapsulamento é um mecanismo que utilizamos para esconder detalhes de estruturas complexas, que de outra forma iriam interferir na nossa análise. O Encapsulamento tem como objetivo Proteger os Dados. Restringir o acesso dos atributos aos métodos da classe garante que nenhum dado será alterado por engano ou de forma descontrolada.

Encapsulamento ... um pouco mais:

Encapsulamento ... um pouco mais um pouco mais ... Encapsulamento tem sido considerado erradamente como sinónimo de ocultação de dados e implementação interna, mas na realidade significa que os componentes (definições, dados e rotinas) são “metidos numa cápsula” (classe) O Encapsulamento garante que uma classe seja interpretada como uma caixa preta para o utilizador: ele não sabe o que está dentro do objeto,sabe apenas para que serve e quais os métodos disponíveis para a manipulação deste. Recomendações: A menos que hajam razões muito fortes: 􀂅 Os atributos de uma classe devem ser definidos como private (encapsulamento) 􀂅 Os métodos que são chamados de fora da classe devem ser public (interface de acesso) 􀂅 Os métodos que devem ser usados somente dentro da própria classe, devem ser especificados como private.

POO - Conceitos (Herança):

POO - Conceitos (Herança) Herança Herança é o mecanismo que permite numa hierarquia que os descendentes herdem o acesso ao código e estruturas de dados dos seus ancestrais. "Ela representa generalização e especialização tornando, atributos e serviços comuns em uma hierarquia de Classe” (Coad-Yourdon) Através do mecanismo de Herança, a classe mais especializada herda todos os métodos e atributos da classe mais geral. A superclasse descreve todos os atributos e métodos herdados das suas subclasses em vez de estes se repetirem num nível mais baixo.

Tipos de Herança :

Tipos de Herança Tipos de Herança Herança entre classes (simples) 􀂅 tipo de herança onde uma subclasse herda as propriedades das suas superclasses. Herança múltipla 􀂅 a classe pode pertencer a duas ou mais superclasses.

POO - Conceitos (Polimofirsmo):

POO - Conceitos (Polimofirsmo) Polimorfismo Polimorfismo é a propriedade de uma ou mais classes responderem a mesma mensagem, cada uma de uma forma diferente. Isto faz os objetos diferentes reagirem segundo a sua função a uma ordem padrão. Ex: Todos os animais comem e falam. Respondem a uma mesma questão mas de maneira diferente. O cão ladra e o gato mia.

Vantagens vs. Desvantagens (POO):

Vantagens vs. Desvantagens (POO) Vantagens Existem várias razões para adoptarmos a metodologia da programação orientada a objectos: Continuidade Reutilização Manutenção Produtividade Desvantagens Não possui o mesmo desempenho de códigos estruturados similares. Seus conceitos são de difícil compreensão se comparados aos conceitos da Programação estruturada.

Classes Abstratas:

Classes Abstratas Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos. A classe abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo ( template ) para uma funcionalidade e fornece uma implementação incompleta - a parte genérica dessa funcionalidade - que é compartilhada por um grupo de classes derivadas. Cada uma das classes derivadas completa a funcionalidade da classe abstrata adicionando um comportamento específico.

Métodos Abstratos:

Métodos Abstratos Uma classe abstrata normalmente possui métodos abstratos . Esses métodos são implementados nas suas classes derivadas concretas com o objetivo de definir o comportamento específico. O método abstrato define apenas a assinatura do método e, portanto, não contém código.

Exemplo de Classes e Métodos Abstratos em Java:

Exemplo de Classes e Métodos Abstratos em Java

Evolução Histórica da POO:

Evolução Histórica da POO 1967 : Simula - os primeiros conceitos de POO 1972 : Smalltalk 1980 : C++ - linguagem híbrida, derivada da linguagem C 1983 : Ada - criada para uso militar nos EUA 1984 : Eiffel - primeiras características formais de POO 1986 : Object Pascal 1995 : Java - linguagem puramente orientada a objectos (...)

Webgrafia:

Webgrafia http://pt.wikipedia.org/wiki/Classe_(programa%C3%A7%C3%A3o)#Classes_abstratas_e_concretas http://pipeless.blogspot.pt/2009/01/programao-estruturada-versus-programao.html http://www2.mat.ua.pt/lap/General/A0708/Acetatos/ACETPOO_3.pdf

authorStream Live Help