1 / 26

Introdução ao Paradigma de Orientação a Objetos

Introdução ao Paradigma de Orientação a Objetos. Disciplina : Programação Orientada a Objetos Prof. Ricardo Satoshi Oyakawa. Conteúdo. Histórico de OO Vantagens de OO Linguagens OO Conceitos Básicos de OO Reflexão. Histórico de OO.

abbott
Télécharger la présentation

Introdução ao Paradigma de Orientação a Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução ao Paradigma de Orientação a Objetos Disciplina: ProgramaçãoOrientada a Objetos Prof. Ricardo Satoshi Oyakawa

  2. Conteúdo • Histórico de OO • Vantagens de OO • Linguagens OO • Conceitos Básicos de OO • Reflexão

  3. Histórico de OO • A OO surgiu no final da década de 60, quando doiscientistas dinamarqueses criaram a linguagem Simula(Simulation Language) • 1967 - Linguagem de Programação Simula-67-conceitosde classe e herança • O termo Programação Orientada a Objetos (POO) éintroduzido com a linguagem Smalltalk (1983) • FINS DOS ANOS 80 Paradigma de Orientação aObjetos • abordagem poderosa e prática para odesenvolvimento de software

  4. Histórico de OO • Surgiram linguagens híbridas: • C++ (1986), Object-Pascal (1986) • Surgiram diversos Métodos de Análise e Projeto OO • CRC (Class Responsability Collaborator, Beecke eCunningham, 1989) • OOA (Object Oriented Analysis, Coad e Yourdon, 1990) • Booch (1991) • OMT (Object Modeling Technique, Rumbaugh, 1991) • Objectory (Jacobson, 1992) • Fusion (Coleman, 1994) • UML (Unified Modeling Language, 1997)

  5. Vantagens de OO • Abstração de dados: os detalhes referentes àsrepresentações das classes serão visíveis apenas a seusatributos; • Compatibilidade: as heurísticas para a construção dasclasses e suas interfaces levam a componentes desoftware que são fáceis de se combinar; • Flexibilidade: as classes delimitam-se em unidadesnaturais para a alocação de tarefas dedesenvolvimentode software;

  6. Vantagens de OO • Reutilização: o encapsulamento dos métodos erepresentação dos dados para a construção de classesfacilitam o desenvolvimento de software reutilizável,auxiliando na produtividade de sistemas; • Extensibilidade: facilidade de estender o software devidoa duas razões: • herança: novas classes são construídas a partir das que jáexistem; • as classes formam uma estrutura fracamente acoplada o quefacilita alterações; • Manutenibilidade: a modularização natural em classesfacilita a realização de alterações no software.

  7. Vantagens de OO • Melhoria de comunicação entre desenvolvedores eclientes; • Redução da quantidade de erros no sistema, diminuindoo tempo nas etapas de codificação e teste; • Maior dedicação à fase de análise, preocupando-se coma essência do sistema; • Mesma notação é utilizada desde a fase de análise até aimplementação.

  8. Linguagens OO • Existem diversas linguagens OO, tais como: • Smalltalk (1972) • Ada (1983) • Eiffel (~1985) • Object Pascal (1986) • Common Lisp (1986) • C++ (~1989) • Java

  9. Conceitos Básicos • Orientação a Objetos (OO) é uma abordagem deprogramação que procura explorar nosso lado intuitivo.Os objetos da computação são análogos aos objetosexistente no mundo real. • No enfoque de OO, os átomos do processo decomputação são os objetos que trocam mensagensentre si. • Essas mensagens resultam na ativação de métodos, osquais realizam as ações necessárias. • Os objetos que compartilham uma mesma interface, ouseja, respondem as mesmas mensagens, são agrupadosem classes.

  10. Conceitos Básicos • Objeto é algo DINÂMICO: é criado por alguém, temuma vida, e morre ou é morto por alguém. Assim,durante a execução do sistema, os objetos podem: • Ser construídos • Executar ações • Ser destruídos • Tornar inacessíveis

  11. Conceitos Básicos • Objetos e Classes Automóvel Marca Placa Palio JWO-4567 Parati KLJ-0978 Celta JDK-6543 CLASSE OBJETOS (Instâncias da classe Automóvel)

  12. Conceitos Básicos • Objetos: • Tudo em OO é OBJETO • Objeto, no mundo físico, é tipicamente um produtore consumidor de itens de informação • Definição (mundo do sofware) • “Qualquer coisa, real ou abstrata, a respeito daqual armazenamos dados e métodos que osmanipulam” Martin, Odell (1995) • Abstração de uma entidade do mundo real demodo que essa entidade possue váriascaracterísticas

  13. Conceitos Básicos • Classes: • Agrupamento de objetos similares. • Todo objeto é uma instância de uma Classe. • Os objetos representados por determinada classediferenciam-se entre si pelos valores de seusatributos. • Conjunto de objetos que possuem propriedadessemelhantes (ATRIBUTOS), o mesmocomportamento (MÉTODOS), os mesmosrelacionamentos com outros objetos e a mesmasemântica.

  14. Conceitos Básicos Portas Quartos Salas Localização Cozinha Telhado Reformar Limpar Pintar Mobilhar • Exemplo 1 Casa Casa Amarela Casa do Presidente Casa da Maria

  15. Conceitos Básicos • Atributos e Métodos: Exemplo 2 Automóvel Proprietário Marca Placa Ano Registrar Transferir_Proprietário Mudar_Placa ATRIBUTOS MÉTODOS

  16. Conceitos Básicos • Atributos e Métodos: Exemplo 3 Figura Largura Altura Posicao_X Posicao_Y Cor_preenchimento Mover Redimensionar ATRIBUTOS MÉTODOS

  17. Conceitos Básicos • Atributos: • Representam um conjunto de informações, ou seja,elementos de dados que caracterizam um objeto • Descrevem as informações que ficam escondidas emum objeto para serem exclusivamente manipuladopelas operações daquele objeto • São variáveis que definem o estado de um objeto, ouseja, são entidades que caracterizam os objetos • Cada objeto possue seu próprio conjunto deatributos

  18. Conceitos Básicos • Métodos: • Quando um objeto é mapeado dentro do domínio dosoftware, os processos que podem mudar a suaestrutura de dados são denominados Operações ouMétodos • Métodos são invocados por Mensagens • Cada objeto possue seu próprio conjunto de métodos • Definições: São procedimentos definidos edeclarados que atuam sobre um objeto ou sobre umaclasse de objetos

  19. Conceitos Básicos • Três elementos chaves de OO são: • Encapsulamento • Herança • Polimorfismo

  20. Conceitos Básicos • Encapsulamento: • Objetos encapsulam seus atributos; • Propriedade segundo a qual os atributos de umaclasse são acessíveis apenas pelos métodos daprópria classe; • Outras classes só podem acessar os atributos de umaclasse invocando os métodos públicos; • Restringe a visibilidade do objeto mas facilita o reuso • Os DADOS e os MÉTODOS são empacotados sob umnome e podem ser reusados como uma especificaçãoou componente de programa.

  21. Conceitos Básicos • Herança: • É o mecanismo pelo qual uma subclasseherda todas as propriedades da superclasse eacrescenta suas próprias e exclusivas características. • As propriedades da superclasse não precisam serrepetidas em cada subclasse. • Por exemplo, JanelaRolante e JanelaFixa sãosubclasses de Janela. Elas herdam as propriedades deJanela, como uma região visível na tela. JanelaRolanteacrescenta uma barra de paginação e um afastamento.

  22. Conceitos Básicos Veículo Proprietário Marca Placa • Herança Automóvel n_passageiros Caminhão n_eixos Semi-reboque Capacidade

  23. Conceitos Básicos • Polimorfismo: • Geralmente representa a qualidade ou estado de um objeto ser capaz de assumir diferentes formas. • Mais especificamente, propriedade segundo o qual vários métodos podem existir com o mesmo nome. • Ao receber uma mensagem para efetuar uma Operação, é o objeto quem determina como a operação deve ser efetuada; • Permite a criação de várias classes com interfaces idênticas, porém objetos e implementações diferentes. • Exemplos: • O operador “+” pode ser usado com inteiros, pontos-flutuantes ou strings. • A operação mover pode atuar diferentemente nas classes Janela e PeçadeXadrez.

  24. Conceitos Básicos Veículo Verificar() Reparar() Limpar() • Polimorfismo Automóvel Verificar() Reparar() Limpar() Bicicleta Verificar() Reparar() Limpar()

  25. Conceitos Básicos • Analogia dos conceitos principais no paradigmaorientado a objeto e no paradigma tradicional deprogramação

  26. Reflexão • A tecnologia de OO é bastante recente e “veiopara ficar” • OO impõe qualidade, produtividade eprofissionalismo na construção de sistemas • Existem métodos, técnicas e ferramentas desoftware OO que acompanham o processo dedesenvolvimento do software desde a análiseaté a implementação

More Related