SlideShare une entreprise Scribd logo
1  sur  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]

Contenu connexe

Tendances

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
Leonardo Melo Santos
 
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
danielrpgj30
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetos
Sliedesharessbarbosa
 
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
Charles Jungbeck
 

Tendances (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
 

En vedette

En vedette (19)

Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Orientação a Objetos (1)
Orientação a Objetos (1)Orientação a Objetos (1)
Orientação a Objetos (1)
 
Cs 2
Cs 2Cs 2
Cs 2
 
Visão Geral de EJB 3.0
Visão Geral de EJB 3.0Visão Geral de EJB 3.0
Visão Geral de EJB 3.0
 
Introducao
IntroducaoIntroducao
Introducao
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Uml
UmlUml
Uml
 
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, ...)
 
Javafx Avancado
Javafx AvancadoJavafx Avancado
Javafx Avancado
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
MDB
MDBMDB
MDB
 
Cs 1
Cs 1Cs 1
Cs 1
 
Javafx Gui
Javafx GuiJavafx Gui
Javafx Gui
 
1409243945064
14092439450641409243945064
1409243945064
 
servlet-respostas
servlet-respostasservlet-respostas
servlet-respostas
 
EJB
EJBEJB
EJB
 
jsp-intro
jsp-introjsp-intro
jsp-intro
 
Javafx Introdução
Javafx IntroduçãoJavafx Introdução
Javafx Introdução
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 

Similaire à Orientação a Objetos (3)

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
Marcius Brandão
 
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
elliando dias
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
Infogenius
 
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 Intro
lcbj
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
Jhonefj
 

Similaire à Orientação a Objetos (3) (20)

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
 
Aula1
Aula1Aula1
Aula1
 

Plus de Fábio Nogueira de Lucena

Plus de Fábio Nogueira de Lucena (17)

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
 
Orientação a objetos (tecnologias)
Orientação a objetos (tecnologias)Orientação a objetos (tecnologias)
Orientação a objetos (tecnologias)
 
Orientação a Objetos (introdução)
Orientação a Objetos (introdução)Orientação a Objetos (introdução)
Orientação a Objetos (introdução)
 

Dernier

Dernier (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Orientação a Objetos (3)