SlideShare uma empresa Scribd logo
3 O universo é orientado a objetos.
Raio-X de software orientado a objetos Coleção de objetos trocando mensagens entre eles Cenário de troca de mensagens entre vários objetos Classe do objeto  objN
Detalhes de código Orientado a Objetos
Orientado a Objetos (OO) Abstração Classes  Identidade de objeto Encapsulamento Herança Polimorfismo Persistência
OO (classes) Cliente Mensagens enviadas aos objetos c1 e c2
OO (identidade de objeto) Instâncias distintas Mesmo estado
OO (identidade de objeto) Todo objeto possui uma referência ( handle ) Um único handle acompanha a vida do objeto Dois objetos distintos não possuem a mesma referência String s1;  // Referência para objeto String String s2;  // Referência denominada de s2 s1 = new String("Programa");  // Cria instância de String s2 = new String("Identidade"); // s2 referencia um objeto String   s1 = s2; // Acesso ao objeto referenciado por s1 é perdido Identidade
OO (encapsulamento) União de operações e atributos em objeto Um objeto é acessível apenas através da interface fornecida pelo encapsulamento Um telefone possui várias funções (realiza chamadas, toca, ...) Possui estado (p. ex.: ligado ou não) Permite o acesso às operações e estado através de interface bem definida Exemplo
Encapsulamento Composição : Cloridrato de Ranitidina (base), Celulose microcristalina, Fosfato de cálcio dibásico, glicolato de amido sódico, Dióxido de silício coloidal, Polietilenoglicol 6000 micronizado, Estearato de magnésio, Talco, Polímero do ácido acrílico, Dióxido de titânio, Polietilenoglicol 6000
Ocultamento de informação (censura)
OO (ocultar informação) Permite esconder  como  um objeto realiza os serviços que oferece publicamente Bibliografia  –  Abstraction, Encapsulation, and Information Hiding , Berard, E. V et al.
Interface
public class Pessoa { private  String nome; private  int anoNascimento; public  Pessoa(String n, int an) { nome = n; anoNascimento = an; } public  String toString() { return nome + " (" + anoNascimento + ")" ; } } class TestaPessoa { public  static void main(String[] args) { Pessoa p = new Pessoa("Joao", 1975); System.out.println(p.toString()); } } Encapsulamento e ocultamento Estado Comportamento Comportamento Interface pública Information hiding Envio de mensagem Código oculto!
Implementação
Herança (uma interpretação)
Herança (classes base e derivada) Uma nova classe é criada com base em uma classe existente. A classe que herda é chamada de derivada, a outra de base. Subclasse, descendente, ... Superclasse, ascendente, ... A classe  Derivada   herda da classe  Base . INTERPRETAÇÃO Visual Basic .NET
Interpretação de herança Classe Derivada  herda  os atributos e comportamento de Base Classe Derivada pode estender e/ou refinar a classe Base Atributos e comportamento são herdados. Novos atributos podem ser acrescentados. Novos comportamentos podem ser acrescentados. Comportamentos podem ser sobrepostos Não se esqueça! Instância da classe  Derivada  comporta-se como instância da classe  Base
Comportamentos são herdados Instância da subclasse comporta-se como instância da classe base
Atributos são herdados e/ou criados A subclasse possui o atributo da classe base e acrescenta outro A subclasse adiciona um comportamento não presente na classe Base Visual Basic .NET
Objeto de subclasse (comportamento) Instância de subclasse deve se comportar também como uma instância da superclasse.
Herança Meio de Transporte: capacidade velocidade padrão custo por metro
Herança (UML)
OO (herança) Pessoa  é generalização de  Pessoa física  e de  Pessoa jurídica Pessoa física  é uma especialização de  Pessoa Pessoa jurídica  é uma especialização de  Pessoa
Herança Acrescenta
Herança (oficina mecânica)
Heranças adequadas e inadequadas Polígono herda de ponto Quadrado herda de retângulo Pessoa herda de animal Computador herda de máquina Classe herda de aluno Voz herda de som Telefone herda de Comunicação Infância herda de FaseDaVida Maguila herda de Lutador
Outro elemento OO muito útil! Separe o que está bom e jogue fora o resto. Calculo os créditos e débitos destes documentos (Notas fiscais, promissórias, recibos, ...) Quais os compromissos noturnos que tenho? Toque de recolher afeta pessoas, negócios, ... Imposto de renda se aplica a PFs, PJs, PFs aposentadas, ...
OO (polimorfismo) “Assume muitas formas” Mecanismo no qual uma operação possui implementações distintas em classes distintas
OO (polimorfismo) Polimorfismo
OO (persistência) Um objeto retém seu estado Persistencia
Interface  Tipo abstrato que identifica serviços que uma classe deve implementar class FazAlgo  implements  Runnable { public void run() { System.out.println(“Fazendo algo...”); } public class Programa { public static void main(String[] args) { new Thread(new FazAlgo()).start(); Runnable r = new FazAlgo(); r.run(); } } public interface Runnable { public void run(); }
Tecnologia de Objetos Como empregar?
Usar OO exige método Apropriado às necessidades Métodos OO não são mais fáceis Bibliografia –  Object-Oriented Analysis and Design: A Comparative Review,  Brinkkemper, S.
Como identificar objetos? Abstração relógio, lanterna, calculadora, ... Oferece serviços marca o tempo, ilumina, realiza cálculos, ...
Exige pensar diferente! Para a orientação a objetos ser utilizada será necessário eliminar o fato de que a maioria dos praticantes não pensam em termos de objetos.
Visão “convencional” void plantar() void colher() void adubar() int nTrabalhadores() Time dataColheita() ...
Visão orientada a objetos
O que você vê? (I)
O que você vê? (II)
O que você vê? (III)
Classes, UML e Desenvolvimento Orientado a Objetos Noções
Classe (detalhes segundo a UML)
Mapeamento entre UML e Java public class Historico { private String NomeAluno; private String Programa; private int[] Nota; private int ano; public void SetAno(int a) {   ano = (a>=0) ? a : 0;  } public void Imprime() {...} public void Valida() {...} }
Para implementar é preciso Dominar programação e algoritmos A estrutura do software Para organizar um software é preciso Dominar os princípios de projeto de software Conhecer o que deverá ser oferecido ao cliente Para conhecer o que o cliente deseja É preciso muita habilidade! Envolver-se no negócio em questão “Processo de Software” Análise Projeto Implementação
Análise, Projeto e Implementação OO public class Lampada { private boolean ligada;  public Lampada() { ligada = false; } public void liga() { ligada = true; } public void desliga() { ligada = false; } public boolean estaLigada() {    return ligada;  } public static void main (String[] args){ Lampada l = new Lampada(); l.liga();   System.out.println(estaLigada()   ? "Ligada"   : "Desligada"); } }  Lampada
Resumo “ Principais recursos” da UML Diagrama de classe e diagrama de seqüência Como tudo, OO tem vantagens e dificuldades Pensar no mundo orientado a objeto exige treino Características de OO Identidade de objeto, encapsulamento, herança, ... Noção de desenvolvimento OO

Mais conteúdo relacionado

PDF
POO - 16 - Polimorfismo
Ludimila Monjardim Casagrande
 
PPTX
SCJA
Rafael Sakurai
 
PDF
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
 
ODP
O paradigma da orientação a objetos
Nécio de Lima Veras
 
PDF
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
PPTX
Aula diagrama de classes
Márcia Rodrigues
 
PDF
POO - 17 - Interfaces
Ludimila Monjardim Casagrande
 
POO - 16 - Polimorfismo
Ludimila Monjardim Casagrande
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
Ludimila Monjardim Casagrande
 
O paradigma da orientação a objetos
Nécio de Lima Veras
 
Java - Aula 2 - Orientado a Objetos
Moises Omena
 
Aula diagrama de classes
Márcia Rodrigues
 
POO - 17 - Interfaces
Ludimila Monjardim Casagrande
 

Mais procurados (19)

PPT
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
PPT
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
PDF
02 - Orientação a objetos e revisão de C# v1.5
César Augusto Pessôa
 
PPT
Curso : Introdução Orientação a Objetos
danielrpgj30
 
PPT
Introdução à análise orientada a objetos parte 1
ariovaldodias
 
PPT
Aula 1 - Linguagem III
Juliano Weber
 
PDF
Curso de OO com C# - Parte 01 - Orientação a objetos
Leonardo Melo Santos
 
PDF
Programação orientada a objetos – II
Gabriel Faustino
 
PDF
POO - 18 - Sobrecarga e Sobreposição de Métodos
Ludimila Monjardim Casagrande
 
PDF
POO - 20 - Wrapper Classes
Ludimila Monjardim Casagrande
 
PPT
Integração de Tecnologias
elliando dias
 
PDF
Analise e projetos orientados a objetos
Sliedesharessbarbosa
 
PDF
Aula02
Lucas Lellis
 
PDF
Programação Orientada á Objeto - Paradigmas e Implementação
Evandro Júnior
 
PPT
Introdução a programação Orientada a Objeto
Marconi Rodrigues
 
PDF
Conceitos Básicos de OO e Java
Charles Jungbeck
 
PPTX
Orientação a Objetos
José Cléber dos Santos Ferreira
 
ODP
Orientação a Objetos - Conceitos
Mayron Cachina
 
DOCX
04 modelagem classes
josejunior89
 
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
Conceitos básicos de programação orientada a objetos
Leonardo Melo Santos
 
02 - Orientação a objetos e revisão de C# v1.5
César Augusto Pessôa
 
Curso : Introdução Orientação a Objetos
danielrpgj30
 
Introdução à análise orientada a objetos parte 1
ariovaldodias
 
Aula 1 - Linguagem III
Juliano Weber
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Leonardo Melo Santos
 
Programação orientada a objetos – II
Gabriel Faustino
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
Ludimila Monjardim Casagrande
 
POO - 20 - Wrapper Classes
Ludimila Monjardim Casagrande
 
Integração de Tecnologias
elliando dias
 
Analise e projetos orientados a objetos
Sliedesharessbarbosa
 
Aula02
Lucas Lellis
 
Programação Orientada á Objeto - Paradigmas e Implementação
Evandro Júnior
 
Introdução a programação Orientada a Objeto
Marconi Rodrigues
 
Conceitos Básicos de OO e Java
Charles Jungbeck
 
Orientação a Objetos
José Cléber dos Santos Ferreira
 
Orientação a Objetos - Conceitos
Mayron Cachina
 
04 modelagem classes
josejunior89
 
Anúncio

Destaque (19)

ODP
Como desenvolver-software
Fábio Nogueira de Lucena
 
ODP
Orientação a Objetos (1)
Fábio Nogueira de Lucena
 
ZIP
Visão Geral de EJB 3.0
Fábio Nogueira de Lucena
 
ODP
Orientação a Objetos (2)
Fábio Nogueira de Lucena
 
PPTX
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Fábio Nogueira de Lucena
 
PDF
Javafx Avancado
Fábio Nogueira de Lucena
 
ODP
servlet-requisicoes
Fábio Nogueira de Lucena
 
PDF
1409243945064
Fábio Junior
 
ODP
servlet-respostas
Fábio Nogueira de Lucena
 
PDF
Javafx Introdução
Fábio Nogueira de Lucena
 
ODP
engenharia-de-requisitos
Fábio Nogueira de Lucena
 
Como desenvolver-software
Fábio Nogueira de Lucena
 
Orientação a Objetos (1)
Fábio Nogueira de Lucena
 
Visão Geral de EJB 3.0
Fábio Nogueira de Lucena
 
Orientação a Objetos (2)
Fábio Nogueira de Lucena
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Fábio Nogueira de Lucena
 
Javafx Avancado
Fábio Nogueira de Lucena
 
servlet-requisicoes
Fábio Nogueira de Lucena
 
1409243945064
Fábio Junior
 
servlet-respostas
Fábio Nogueira de Lucena
 
Javafx Introdução
Fábio Nogueira de Lucena
 
engenharia-de-requisitos
Fábio Nogueira de Lucena
 
Anúncio

Semelhante a Orientação a Objetos (3) (20)

PPTX
Java e orientação a objetos
Frederico Maia Arantes
 
PPTX
Transição - Orientação a objeto para Funcional
Ismael Velten
 
PPT
Java Desktop
ciceroclc
 
PPTX
Framework Entities - Apresentação da Defesa da Dissertacao
Marcius Brandão
 
PPT
DDD > Experiências
Giovanni Bassi
 
PPT
Domain Driven Design (DDD) - DevIsland, BH
Giovanni Bassi
 
PDF
Scala: unindo programação funcional e orientação a objetos
Felipe Hummel
 
PDF
Revisão Sobre Programação Orientada a Objetos com Java
Mario Jorge Pereira
 
PPT
AspectJ — Programação orientada a aspectos em Java
elliando dias
 
PPTX
Programação Orientada por Objectos - Aula 2
Manuel Menezes de Sequeira
 
PPT
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
PPT
Linguagens Poo
Infogenius
 
PDF
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
PPTX
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Adriano Teixeira de Souza
 
PPT
0 Intro
lcbj
 
PPTX
Aula01-IntroducaoOO.pptx
Danilo Rangel Arruda Leite, Msc
 
PDF
Padrões de projeto - Martin Fowler - P of EAA
Aricelio Souza
 
PDF
Umlv4 090813182632-phpapp02
Jhonefj
 
PPT
Aula1
mentrixmax
 
Java e orientação a objetos
Frederico Maia Arantes
 
Transição - Orientação a objeto para Funcional
Ismael Velten
 
Java Desktop
ciceroclc
 
Framework Entities - Apresentação da Defesa da Dissertacao
Marcius Brandão
 
DDD > Experiências
Giovanni Bassi
 
Domain Driven Design (DDD) - DevIsland, BH
Giovanni Bassi
 
Scala: unindo programação funcional e orientação a objetos
Felipe Hummel
 
Revisão Sobre Programação Orientada a Objetos com Java
Mario Jorge Pereira
 
AspectJ — Programação orientada a aspectos em Java
elliando dias
 
Programação Orientada por Objectos - Aula 2
Manuel Menezes de Sequeira
 
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
Linguagens Poo
Infogenius
 
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Adriano Teixeira de Souza
 
0 Intro
lcbj
 
Aula01-IntroducaoOO.pptx
Danilo Rangel Arruda Leite, Msc
 
Padrões de projeto - Martin Fowler - P of EAA
Aricelio Souza
 
Umlv4 090813182632-phpapp02
Jhonefj
 
Aula1
mentrixmax
 

Mais de Fábio Nogueira de Lucena (17)

PDF
Fundamentos de Programação Front-End
Fábio Nogueira de Lucena
 
PPTX
JavaScript: Aprendendo a programar
Fábio Nogueira de Lucena
 
PPTX
HTML5: Primeiros Contatos (visão geral)
Fábio Nogueira de Lucena
 
PDF
HTTP: Um Curso Básico
Fábio Nogueira de Lucena
 
PDF
Apresentacao curso-2017-08-08
Fábio Nogueira de Lucena
 
PPTX
Jornada Goiana em Engenharia de Software 2017
Fábio Nogueira de Lucena
 
PPTX
Arquétipos
Fábio Nogueira de Lucena
 
PPTX
Introducao integracao
Fábio Nogueira de Lucena
 
PPTX
Healthdb Visão Geral
Fábio Nogueira de Lucena
 
PPTX
Engenharia de Software - planejamento pedagógico
Fábio Nogueira de Lucena
 
PPTX
Arquitetura de Software EXPLICADA
Fábio Nogueira de Lucena
 
PPT
Arquitetura de Software
Fábio Nogueira de Lucena
 
PPTX
Arquitetura software
Fábio Nogueira de Lucena
 
PPTX
Prontuário Eletrônico do Paciente
Fábio Nogueira de Lucena
 
ODP
Orientação a objetos (tecnologias)
Fábio Nogueira de Lucena
 
ODP
Orientação a Objetos (introdução)
Fábio Nogueira de Lucena
 
Fundamentos de Programação Front-End
Fábio Nogueira de Lucena
 
JavaScript: Aprendendo a programar
Fábio Nogueira de Lucena
 
HTML5: Primeiros Contatos (visão geral)
Fábio Nogueira de Lucena
 
HTTP: Um Curso Básico
Fábio Nogueira de Lucena
 
Apresentacao curso-2017-08-08
Fábio Nogueira de Lucena
 
Jornada Goiana em Engenharia de Software 2017
Fábio Nogueira de Lucena
 
Introducao integracao
Fábio Nogueira de Lucena
 
Healthdb Visão Geral
Fábio Nogueira de Lucena
 
Engenharia de Software - planejamento pedagógico
Fábio Nogueira de Lucena
 
Arquitetura de Software EXPLICADA
Fábio Nogueira de Lucena
 
Arquitetura de Software
Fábio Nogueira de Lucena
 
Arquitetura software
Fábio Nogueira de Lucena
 
Prontuário Eletrônico do Paciente
Fábio Nogueira de Lucena
 
Orientação a objetos (tecnologias)
Fábio Nogueira de Lucena
 
Orientação a Objetos (introdução)
Fábio Nogueira de Lucena
 

Último (7)

PPTX
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
PPTX
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
PPTX
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
PDF
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
PPTX
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Gestão de Mudanças - Fases do processo de mudança organizacional
Gateware Group
 
Desenvolvimento-de-Produtos-Inovadores.pptx
ssuser1d7565
 
Explorando o Futuro do Corpo: Implantes Neurais e o Biohacking dos Sentidos
cooperliora
 
Gestão de Mudanças - Os maiores desafios da Gestão de Mudanças e Gestão de Pr...
Gateware Group
 

Orientação a Objetos (3)

  • 1. 3 O universo é orientado a objetos.
  • 2. Raio-X de software orientado a objetos Coleção de objetos trocando mensagens entre eles Cenário de troca de mensagens entre vários objetos Classe do objeto objN
  • 3. Detalhes de código Orientado a Objetos
  • 4. Orientado a Objetos (OO) Abstração Classes Identidade de objeto Encapsulamento Herança Polimorfismo Persistência
  • 5. OO (classes) Cliente Mensagens enviadas aos objetos c1 e c2
  • 6. OO (identidade de objeto) Instâncias distintas Mesmo estado
  • 7. OO (identidade de objeto) Todo objeto possui uma referência ( handle ) Um único handle acompanha a vida do objeto Dois objetos distintos não possuem a mesma referência String s1; // Referência para objeto String String s2; // Referência denominada de s2 s1 = new String("Programa"); // Cria instância de String s2 = new String("Identidade"); // s2 referencia um objeto String s1 = s2; // Acesso ao objeto referenciado por s1 é perdido Identidade
  • 8. OO (encapsulamento) União de operações e atributos em objeto Um objeto é acessível apenas através da interface fornecida pelo encapsulamento Um telefone possui várias funções (realiza chamadas, toca, ...) Possui estado (p. ex.: ligado ou não) Permite o acesso às operações e estado através de interface bem definida Exemplo
  • 9. Encapsulamento Composição : Cloridrato de Ranitidina (base), Celulose microcristalina, Fosfato de cálcio dibásico, glicolato de amido sódico, Dióxido de silício coloidal, Polietilenoglicol 6000 micronizado, Estearato de magnésio, Talco, Polímero do ácido acrílico, Dióxido de titânio, Polietilenoglicol 6000
  • 11. OO (ocultar informação) Permite esconder como um objeto realiza os serviços que oferece publicamente Bibliografia – Abstraction, Encapsulation, and Information Hiding , Berard, E. V et al.
  • 13. public class Pessoa { private String nome; private int anoNascimento; public Pessoa(String n, int an) { nome = n; anoNascimento = an; } public String toString() { return nome + " (" + anoNascimento + ")" ; } } class TestaPessoa { public static void main(String[] args) { Pessoa p = new Pessoa("Joao", 1975); System.out.println(p.toString()); } } Encapsulamento e ocultamento Estado Comportamento Comportamento Interface pública Information hiding Envio de mensagem Código oculto!
  • 16. Herança (classes base e derivada) Uma nova classe é criada com base em uma classe existente. A classe que herda é chamada de derivada, a outra de base. Subclasse, descendente, ... Superclasse, ascendente, ... A classe Derivada herda da classe Base . INTERPRETAÇÃO Visual Basic .NET
  • 17. Interpretação de herança Classe Derivada herda os atributos e comportamento de Base Classe Derivada pode estender e/ou refinar a classe Base Atributos e comportamento são herdados. Novos atributos podem ser acrescentados. Novos comportamentos podem ser acrescentados. Comportamentos podem ser sobrepostos Não se esqueça! Instância da classe Derivada comporta-se como instância da classe Base
  • 18. Comportamentos são herdados Instância da subclasse comporta-se como instância da classe base
  • 19. Atributos são herdados e/ou criados A subclasse possui o atributo da classe base e acrescenta outro A subclasse adiciona um comportamento não presente na classe Base Visual Basic .NET
  • 20. Objeto de subclasse (comportamento) Instância de subclasse deve se comportar também como uma instância da superclasse.
  • 21. Herança Meio de Transporte: capacidade velocidade padrão custo por metro
  • 23. OO (herança) Pessoa é generalização de Pessoa física e de Pessoa jurídica Pessoa física é uma especialização de Pessoa Pessoa jurídica é uma especialização de Pessoa
  • 26. Heranças adequadas e inadequadas Polígono herda de ponto Quadrado herda de retângulo Pessoa herda de animal Computador herda de máquina Classe herda de aluno Voz herda de som Telefone herda de Comunicação Infância herda de FaseDaVida Maguila herda de Lutador
  • 27. Outro elemento OO muito útil! Separe o que está bom e jogue fora o resto. Calculo os créditos e débitos destes documentos (Notas fiscais, promissórias, recibos, ...) Quais os compromissos noturnos que tenho? Toque de recolher afeta pessoas, negócios, ... Imposto de renda se aplica a PFs, PJs, PFs aposentadas, ...
  • 28. OO (polimorfismo) “Assume muitas formas” Mecanismo no qual uma operação possui implementações distintas em classes distintas
  • 30. OO (persistência) Um objeto retém seu estado Persistencia
  • 31. Interface Tipo abstrato que identifica serviços que uma classe deve implementar class FazAlgo implements Runnable { public void run() { System.out.println(“Fazendo algo...”); } public class Programa { public static void main(String[] args) { new Thread(new FazAlgo()).start(); Runnable r = new FazAlgo(); r.run(); } } public interface Runnable { public void run(); }
  • 32. Tecnologia de Objetos Como empregar?
  • 33. Usar OO exige método Apropriado às necessidades Métodos OO não são mais fáceis Bibliografia – Object-Oriented Analysis and Design: A Comparative Review, Brinkkemper, S.
  • 34. Como identificar objetos? Abstração relógio, lanterna, calculadora, ... Oferece serviços marca o tempo, ilumina, realiza cálculos, ...
  • 35. Exige pensar diferente! Para a orientação a objetos ser utilizada será necessário eliminar o fato de que a maioria dos praticantes não pensam em termos de objetos.
  • 36. Visão “convencional” void plantar() void colher() void adubar() int nTrabalhadores() Time dataColheita() ...
  • 38. O que você vê? (I)
  • 39. O que você vê? (II)
  • 40. O que você vê? (III)
  • 41. Classes, UML e Desenvolvimento Orientado a Objetos Noções
  • 43. Mapeamento entre UML e Java public class Historico { private String NomeAluno; private String Programa; private int[] Nota; private int ano; public void SetAno(int a) { ano = (a>=0) ? a : 0; } public void Imprime() {...} public void Valida() {...} }
  • 44. Para implementar é preciso Dominar programação e algoritmos A estrutura do software Para organizar um software é preciso Dominar os princípios de projeto de software Conhecer o que deverá ser oferecido ao cliente Para conhecer o que o cliente deseja É preciso muita habilidade! Envolver-se no negócio em questão “Processo de Software” Análise Projeto Implementação
  • 45. Análise, Projeto e Implementação OO public class Lampada { private boolean ligada; public Lampada() { ligada = false; } public void liga() { ligada = true; } public void desliga() { ligada = false; } public boolean estaLigada() { return ligada; } public static void main (String[] args){ Lampada l = new Lampada(); l.liga(); System.out.println(estaLigada() ? "Ligada" : "Desligada"); } } Lampada
  • 46. Resumo “ Principais recursos” da UML Diagrama de classe e diagrama de seqüência Como tudo, OO tem vantagens e dificuldades Pensar no mundo orientado a objeto exige treino Características de OO Identidade de objeto, encapsulamento, herança, ... Noção de desenvolvimento OO