• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Aula 1 do Curso de Fundamentos de Programação Orientada a Objetos
 

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

on

  • 8,977 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
8,977
Views on SlideShare
8,973
Embed Views
4

Actions

Likes
8
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

16 of 6 previous next 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