SlideShare uma empresa Scribd logo
1 de 46
3 O universo é orientado a objetos.
Raio-X de software orientado a objetos ,[object Object],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) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OO (classes) Cliente Mensagens enviadas aos objetos c1 e c2
OO (identidade de objeto) Instâncias distintas Mesmo estado
OO (identidade de objeto) ,[object Object],[object Object],[object Object],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) ,[object Object],[object Object],[object Object],[object Object],[object Object],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) ,[object Object],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) ,[object Object],[object Object],Subclasse, descendente, ... Superclasse, ascendente, ... A classe  Derivada   herda da classe  Base . INTERPRETAÇÃO Visual Basic .NET
Interpretação de herança ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Não se esqueça! Instância da classe  Derivada  comporta-se como instância da classe  Base
Comportamentos são herdados ,[object Object]
Atributos são herdados e/ou criados ,[object Object],[object Object],Visual Basic .NET
Objeto de subclasse (comportamento) ,[object Object]
Herança Meio de Transporte: capacidade velocidade padrão custo por metro
Herança (UML)
OO (herança) ,[object Object],[object Object],[object Object]
Herança Acrescenta
Herança (oficina mecânica)
Heranças adequadas e inadequadas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Outro elemento OO muito útil! ,[object Object],[object Object],[object Object],[object Object],[object Object]
OO (polimorfismo) ,[object Object],[object Object]
OO (polimorfismo) Polimorfismo
OO (persistência) ,[object Object],Persistencia
Interface  ,[object Object],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 ,[object Object],[object Object],Bibliografia –  Object-Oriented Analysis and Design: A Comparative Review,  Brinkkemper, S.
Como identificar objetos? ,[object Object],[object Object]
Exige pensar diferente! ,[object Object]
Visão “convencional” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],“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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetosdanielrpgj30
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1ariovaldodias
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologiaselliando dias
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetosSliedesharessbarbosa
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoEvandro Júnior
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - ConceitosMayron Cachina
 
04 modelagem classes
04 modelagem classes04 modelagem classes
04 modelagem classesjosejunior89
 

Mais procurados (20)

POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1Introdução à análise orientada a objetos parte 1
Introdução à análise orientada a objetos parte 1
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de MétodosPOO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 18 - Sobrecarga e Sobreposição de Métodos
 
POO - 20 - Wrapper Classes
POO - 20 - Wrapper ClassesPOO - 20 - Wrapper Classes
POO - 20 - Wrapper Classes
 
Integração de Tecnologias
Integração de TecnologiasIntegração de Tecnologias
Integração de Tecnologias
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetos
 
Aula02
Aula02Aula02
Aula02
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e Implementação
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Orientação a Objetos
Orientação a ObjetosOrientação a Objetos
Orientação a Objetos
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
04 modelagem classes
04 modelagem classes04 modelagem classes
04 modelagem classes
 

Destaque

Gestão da Tecnologia da Informação - Atividade: Status Report
Gestão da Tecnologia da Informação - Atividade: Status ReportGestão da Tecnologia da Informação - Atividade: Status Report
Gestão da Tecnologia da Informação - Atividade: Status ReportAlessandro Almeida
 
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)Alessandro Almeida
 
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"Alessandro Almeida
 
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)Alessandro Almeida
 

Destaque (6)

Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Gestão da Tecnologia da Informação - Atividade: Status Report
Gestão da Tecnologia da Informação - Atividade: Status ReportGestão da Tecnologia da Informação - Atividade: Status Report
Gestão da Tecnologia da Informação - Atividade: Status Report
 
Tcc Pet Caoveniencia
Tcc Pet CaovenienciaTcc Pet Caoveniencia
Tcc Pet Caoveniencia
 
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
 
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
 
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
 

Semelhante a Objetos trocando mensagens

Transição - Orientação a objeto para Funcional
Transição - Orientação a objeto para FuncionalTransição - Orientação a objeto para Funcional
Transição - Orientação a objeto para FuncionalIsmael Velten
 
Java Desktop
Java DesktopJava Desktop
Java Desktopciceroclc
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHGiovanni Bassi
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosFelipe Hummel
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Javaelliando dias
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
0 Intro
0 Intro0 Intro
0 Introlcbj
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Jhonefj
 

Semelhante a Objetos trocando mensagens (20)

Uml
UmlUml
Uml
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Transição - Orientação a objeto para Funcional
Transição - Orientação a objeto para FuncionalTransição - Orientação a objeto para Funcional
Transição - Orientação a objeto para Funcional
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
DDD > Experiências
DDD > ExperiênciasDDD > Experiências
DDD > Experiências
 
Domain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BHDomain Driven Design (DDD) - DevIsland, BH
Domain Driven Design (DDD) - DevIsland, BH
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetos
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Java
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
Java7
Java7Java7
Java7
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
0 Intro
0 Intro0 Intro
0 Intro
 
Aula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptxAula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptx
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 

Mais de Fábio Nogueira de Lucena

Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Fábio Nogueira de Lucena
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoFábio Nogueira de Lucena
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 

Mais de Fábio Nogueira de Lucena (20)

CSS
CSSCSS
CSS
 
Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
 
JavaScript: Aprendendo a programar
JavaScript: Aprendendo a programarJavaScript: Aprendendo a programar
JavaScript: Aprendendo a programar
 
HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)
 
HTTP: Um Curso Básico
HTTP: Um Curso BásicoHTTP: Um Curso Básico
HTTP: Um Curso Básico
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
 
Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017
 
Arquétipos
ArquétiposArquétipos
Arquétipos
 
Introducao integracao
Introducao integracaoIntroducao integracao
Introducao integracao
 
Healthdb Visão Geral
Healthdb Visão GeralHealthdb Visão Geral
Healthdb Visão Geral
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
 
Prontuário Eletrônico do Paciente
Prontuário Eletrônico do PacienteProntuário Eletrônico do Paciente
Prontuário Eletrônico do Paciente
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Introducao
IntroducaoIntroducao
Introducao
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Orientação a Objetos (3)
Orientação a Objetos (3)Orientação a Objetos (3)
Orientação a Objetos (3)
 
Orientação a Objetos (1)
Orientação a Objetos (1)Orientação a Objetos (1)
Orientação a Objetos (1)
 

Objetos trocando mensagens