• Save
Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos
Upcoming SlideShare
Loading in...5
×
 

Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos

on

  • 9,657 views

Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos

Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos

Statistics

Views

Total Views
9,657
Views on SlideShare
9,653
Embed Views
4

Actions

Likes
9
Downloads
0
Comments
6

2 Embeds 4

http://www.linkedin.com 3
http://jogano10.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

15 of 6 Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Não está disponível p/ download ? Achei que a idéia era slideSHARE.
    Are you sure you want to
    Your message goes here
    Processing…
  • Boa tarde.
    Seria possível enviar o material em PDF?
    deneise@ig.com.br
    Obrigada
    Are you sure you want to
    Your message goes here
    Processing…
  • Olá, gostei muito desse material e queria utilizá-lo em minhas aulas. (Aulas de 1 a 5).
    Sou professor do IFPI e prometo deixar como está para ressaltar sua autoria. email: helcio.soares@gmail.com
    Are you sure you want to
    Your message goes here
    Processing…
  • Boa noite, gostaria de saber se é possivel enviar a versão em PDF para mim pois gostaria de imprimir todo o material desde a aula 1 ate a aula 5 muito bom o material, parabéns. Se possível meu e-mail fonseca.deivid@live.com
    Are you sure you want to
    Your message goes here
    Processing…
  • Boa noite, gostaria de saber se é possível enviar a versão em PDF para mim pois gostaria de imprimir todo o material desde a aula 1 ate a aula 5 muito bom o material, parabéns. Se possível meu e-mail fonseca.deivid@live.com
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos Presentation Transcript

  • Fundamentos de Programação Orientada a Objetos Série de Posts: jogano10.com Eder Ignatowicz - Unisal
  • Objetivo do Curso É esperado que ao final do curso o aluno seja capaz de empregar conceitos de programação orientada a objetos na análise e resolução de problemas diversos.
  • Agenda Básica do Curso Introdução a Programação Orientada a Objetos Orientação a objetos básica Pacote Encapsulamento Herança Polimorfismo Classes Abstratas Interfaces
  • Bibliografia Artigos Selecionados; Utilizando UML e Padrões Craig Larman; SILVEIRA, G.; SILVEIRA, P. & LOPES, S. Apostila Java e Orientação a Objetos. Caelum, SIERRA, K. & BATES, B. Use a Cabeça! Java. Alta Books. DEITEL, H. M. & DEITEL, P.J. Java - Como Programar. Prentice-Hall. ARNOLD, K. & GOSLING J. A linguagem de programação Java. Bookman, 4ª Edição, Philip Calçado (www.fragmental.com.br)
  • Introdução a Programação Orientada a Objetos
  • Antes, um pouquinho de história... Surgimento da Eng. de Software (60)para resolver os problemas gerados pela crise do software. As várias técnicas desenvolvidas nos anos 70 e 80 não resolveram o problema de produtividade e qualidade nos softwares.
  • Lições da década de 80.  Requisitos do usuário são mais importantes;  Funções e dados tem grande importância, porém não podem estar separados.
  • Realidade Atual... Realidade atual  Sistemas de alta complexidade;  Ferramentas de desenvolvimento drasticamente diferentes de 20 anos atrás.  Sistemas maiores, mais complexos e mais voláteis.A mudança para alcançar aqualidade e produtividade está na...
  •  REUTILIZAÇÃO !!!!
  • Introdução a Programação Orientada a Objetos Afinal, o que é OO ?  É um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos. E um objeto o que é?
  • O que é um objeto ? “Coisa” Física “Coisa” Não-Física
  • E objetos computacionais ? Objetos que se encontram dentro de sistemas de computador; São abstrações do mundo real; Objetos computacionais são estruturas de programas que contém as informações e os comportamentos que representam um objeto dentro do sistema.
  • Análise e Programação OO. Análise orientada a objetos  Consiste em definir quais objetos fazem parte de um sistema e a maneira como se comportam. Programação orientada a objetos  Consiste em utilizar objetos computacionais para implementar as funcionalidades de um sistema.
  • Na prática... Flexibilidade a mudanças !!!! Mudanças nos processos de negócio do usuário:  Década de 40: 10 anos  Década de 60-70: 5 anos  Década de 90: 2 anos  Atualmente: 6 meses
  • Histórico A OO surgiu no final da década de 60,quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language); O termo Programação Orientada a Objeto (POO) foi introduzido com a linguagem Smalltalk (1983); FIM DOS ANOS 80 :Paradigma de Orientação a Objetos  Abordagem poderosa e prática para o desenvolvimento de software
  • Histórico Linguagens orientadas a objetos – Smalltalk (1972), Ada (1983), Eiffel (~1985) – Object Pascal (1986), Common Lisp (1986), C++ (1986) – Java (~1990), Python (~1990), Perl 5 (2005)
  • Vantagens e Desvantagens OO P.OO utiliza conceitos que aprendemos na infância;  Objetos e atributos, todos e partes, classes e membros;  Porque demoramos tanto para aplicar estes conceitos ? Programar OO não depende de linguagem mas sim de mudança de mentalidade e paradigma... PARADIGMA???
  • Paradigma Paradigma (do grego parádeigma) literalmente modelo, é a representação de um padrão a ser seguido. Cada paradigma representa uma forma de propor uma solução a um dado problema.
  • Vantagens e Desvantagens OO “O navio atraca no porto e descarrega sua carga.” Como resolver este problema estruturalmente?  Ênfase na ação/procedimento; E orientado a objetos???
  • Vantagens e Desvantagens OO Mudança na abordagem...  Pense nos objetos ( navio, porto, carga);  Defina-os e seu comportamento;  Defina como estes objetos se relacionam (ou trocam mensagens) A grosso modo:  Análise estruturada: Verbos;  Análise orientada a objetos: Substantivos
  • Vantagens OO REUTILIZAÇÃO !!!!  Padronização adotada por toda indústria moderna  Peças padrões são mais baratas;  São mais confiáveis;  Geralmente são mais fáceis de serem consertadas ou substituídas.  E na computação????
  • Vantagens OO REUTILIZAÇÃO na computação:  Existência de uma Biblioteca e de um Sistema de Catálogo;  Facilidade para documentação;  Sistemática rigorosa para testes;  Novas técnicas para especificação de sistemas tendo em vista a reutilização de módulos;  Linguagem, ferramentas e ambientes de desenvolvimento que estimulem a adoção, em larga escala, de tais métodos dentro das empresas;
  • Vantagens OO Possibilidade do desenvolvedor trabalhar em um nível mais alto de abstração; Menor custo; Possibilidade de construir sistemas mais complexos; E além disto...
  • Vantagens OO ECONOMIA DE DINHEIRO !!!!
  • Desvantagens OO Complexidade no aprendizado para desenvolvedores de linguagens estruturadas; Maior esforço na modelagem de um sistema OO do que estruturado (porém menor esforço de codificação, sendo uma vantagem); Funcionalidades limitadas por interface, quando estas estão incompletas (problemas na modelagem); Dependência de funcionalidades já implementadas em superclasses no caso da herança, implementações espalhadas em classes diferentes;
  • Conceitos Básicos OO
  • Conceitos Básicos Abstração; Encapsulamento; Objetos; Classes; Herança; Etc.
  • Abstração “Ato de separar um ou mais elementos de uma totalidade complexa (coisa,representação, fato), os quais só mentalmente podem ser separados” Ignorar aspectos não relevantes É a capacidade de focalizar o essencial e ignorar detalhes acidentais não relacionados com o objetivo estabelecido.
  • Abstração
  • Abstração – Exercício Motorista dirige um carro...
  • Encapsulamento Ocultar aspectos não relevantes Modo de utilização dos dados e métodos é diferente da prog. tradicional. Os dados e processos em uma única entidade. Um dos grande trunfo da POO em relação a prog. tradicional. Permite alterações sem afetar demais partes do sistema.
  • Encapsulamento Benefícios  Modularidade - (O código é independente de outros objetos)  Informações Privadas (um objeto tem uma interface pública que outros objetos podem utilizar. As informações do objeto são privadas)  [Information Hiding]
  • Encapsulamento
  • Objetos São elementos reais ou abstratos (de pensamento) que sofrem ou executam ações. Um objeto é qualquer indivíduo, lugar,evento, coisa, tela, relatório ou conceito que seja aplicável ao sistema. Objeto é uma entidade capaz de reter um estado (informação) e que oferece uma séria de operações (comportamentos) ou para examinar ou para afetar este estado.
  • Como é um objeto ? Apresenta características (Estado). Executa e sofre ações (Comportamento). Podem ser classificados por categorias ou classes. Interagem e agrupam-se formando sistemas (que podem ser considerados como objetos).
  • Objeto
  • Objeto Exemplos:  Coisas: Cadeira, Mesa, Telefone, Televisão, ...  Funções: Diretor, Funcionário, Professor, Cliente,...  Eventos: uma Festa, um Congresso, uma Aula, ...  Lugares: uma Cidade, uma Sala, um País, ....  Processos: uma Operação, um Procedimento, ...
  • Atributos É o conjunto de características que descrevem os objetos Atributos de uma pessoa: cor dos olhos, altura, peso, idade, sexo.. Quais são os atributos de uma conta corrente? Somente mudam através de agentes interno ou externos.
  • Atributos Os valores das propriedades de um objeto definem seu Estado.
  • Exercício Identificar pelo menos 5 objetos que pertencem ao domínio de problema:“Sala de Aula Unisal”
  • Métodos ou Serviços (Ações) São as tarefas que o objeto pode realizar As ações do objeto podem interagir com outros objetos Ou podem ser ações internas Quais são as ações de um cachorro?
  • Classes São os modelos a partir dos quais os objetos são criados (Ex: Planta Estrutural) Os modelos são agrupados em classes ou categorias por similaridade de finalidade As categorias estruturam-se hieraquicamente. Ex.: Pessoas–Clientes-Funcionarios, Animais-Aves- Canários
  • Classes Duas categorias de bichos: “Cães” e “Gatos”
  • Classe
  • Classe X Objeto "Classe" é um gabarito; "Objeto" é a concretização do gabarito.
  • Exercícios Como criar uma hierarquia de classes para mamíferos, primatas, felinos englobando características comuns? E a classe documentos?
  • Hierarquia de Classes
  • Herança Tudo aquilo que se herda; Aquilo que se transmite por hereditariedade (Ex: Características genéticas dos pais).
  • Herança Classes prontas podem ser usadas para escrever novos objetos (SuperClasse e SubClasses, Ancestrais e Descendentes) O programador só escreve o que muda Alterações nos ancestrais se propagam aos descendentes Menos bugs, mais produtividade
  • Herança Simples
  • Herança Múltipla
  • Instanciação É quando a classe produz um objeto, como se ela fosse um modelo para a criação de objetos. Objetos nada mais são do que classes instanciadas. É o que dá existência ao objeto. Cada objeto é uma instância de sua classe
  • Instanciação Fazendo uma analogia com a programação procedural. “A estrutura de uma tabela pode ser comparada com uma classe e cada novo registro seria um novo objeto instanciado.” Obs: Isto só vale para efeitos de comparação, pois classe também possuem a definição dos métodos.
  • Classes Puras ou Abstratas São aquelas que nunca serão instanciadas diretamente. Servem de apoio para o processo de estruturação. Exemplo:
  • Exercícios Identificar os objetos da Sala de Aula Agrupar os objetos em classe conforme suas caracteristicas
  • Tipos de Estruturas Visualizar Domínio e Complexidade do problema em estudo. Tipos:  Generalização-Especialização  Todo-Parte
  • Generalização-Especialização
  • Todo-Parte
  • Exercícios Identificar as possíveis estruturas existentes no exercício da Sala de Aula. Identificar e graficar 5 exemplos de estruturas do tipo Generalização-Especialização. Identificar e graficar 5 exemplos de estruturas do tipo Todo-Parte
  • Relacionamentos entre objetos Conexões de Ocorrência  Quando um atributo de um objeto contém uma referência a outro objeto. Conexões de Mensagens  Quando um objeto ativa um método de outro objeto.
  • Conexões de Ocorrência Cardinalidade Conexões de Muitos para Muitos.
  • Conexões de Mensagens Métodos disparados no objeto recebedor Ocorre entre objetos Entre classes somente quando um novo objeto é criado. Pode ou não retornar alguma resposta.
  • Polimorfismo As classes fazem a mesma operação(método), mas de forma diferente. Ocorre quando um método definido no ancestral é redefinido no descendente com um comportamento diferente. Todo método definido em um ancestral pode ser acessado através dos descendentes
  • Polimorfismo As classes fazem a mesma operação (método), mas de forma diferente.
  • POO X Técnicas Tradicionais Métodos  Procedimentos e funções Variáveis de Instância  Dados Mensagens  Chamadas de procedimento e funções Classes  Tipos de Dados Herança  Não existe Chamadas sob controle do  Chamada sob controle dosistema programador