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 - 01 - Introdução ao Paradigma Orientado a Objetos
PDF
POO - 16 - Polimorfismo
PPTX
ODP
O paradigma da orientação a objetos
PDF
Java - Aula 2 - Orientado a Objetos
PPTX
Aula diagrama de classes
PDF
POO - 17 - Interfaces
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 16 - Polimorfismo
O paradigma da orientação a objetos
Java - Aula 2 - Orientado a Objetos
Aula diagrama de classes
POO - 17 - Interfaces

Mais procurados (19)

PPT
Análise Orientada a Objetos - Objetos E Classes
PPT
Conceitos básicos de programação orientada a objetos
PDF
02 - Orientação a objetos e revisão de C# v1.5
PPT
Curso : Introdução Orientação a Objetos
PPT
Introdução à análise orientada a objetos parte 1
PPT
Aula 1 - Linguagem III
PDF
Curso de OO com C# - Parte 01 - Orientação a objetos
PDF
Programação orientada a objetos – II
PDF
POO - 18 - Sobrecarga e Sobreposição de Métodos
PDF
POO - 20 - Wrapper Classes
PPT
Integração de Tecnologias
PDF
Analise e projetos orientados a objetos
PDF
Aula02
PDF
Programação Orientada á Objeto - Paradigmas e Implementação
PPT
Introdução a programação Orientada a Objeto
PDF
Conceitos Básicos de OO e Java
PPTX
Orientação a Objetos
ODP
Orientação a Objetos - Conceitos
DOCX
04 modelagem classes
Análise Orientada a Objetos - Objetos E Classes
Conceitos básicos de programação orientada a objetos
02 - Orientação a objetos e revisão de C# v1.5
Curso : Introdução Orientação a Objetos
Introdução à análise orientada a objetos parte 1
Aula 1 - Linguagem III
Curso de OO com C# - Parte 01 - Orientação a objetos
Programação orientada a objetos – II
POO - 18 - Sobrecarga e Sobreposição de Métodos
POO - 20 - Wrapper Classes
Integração de Tecnologias
Analise e projetos orientados a objetos
Aula02
Programação Orientada á Objeto - Paradigmas e Implementação
Introdução a programação Orientada a Objeto
Conceitos Básicos de OO e Java
Orientação a Objetos
Orientação a Objetos - Conceitos
04 modelagem classes
Anúncio

Destaque (6)

ODP
Orientação a Objetos (2)
PDF
Gestão da Tecnologia da Informação - Atividade: Status Report
PPS
Tcc Pet Caoveniencia
PDF
[Modelo de Negócios] TCC: Sistemas de Informação (2016 - 2º semestre)
PDF
[Gestão da TI] Governança de TI: Modelos, certificações e "melhores práticas"
PDF
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
Orientação a Objetos (2)
Gestão da Tecnologia da Informação - Atividade: Status Report
Tcc Pet Caoveniencia
[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"
[Modelo de Negócios] TCC: TADS (2016 - 2º semestre)
Anúncio

Semelhante a Orientação a objetos (tecnologias) (20)

PDF
03 - Orientação a objetos e classes em C# v1.0
PDF
03 poo
PDF
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
PPTX
Aula01-IntroducaoOO.pptx
PDF
Aula 3 -_fundamentos_sobre_aoo
PPTX
3.1 orientação objetos
PDF
02_revisao_OO.pdf
PPTX
Programação Orientada por Objectos - Aula 2
PPT
Apresentação curso de Extensão em Java (UERJ-IME) v1
PDF
Aula3-POO-ConceitosBasicos.pdf
PPT
Programação Orientada a Objeto(POO)
PDF
Aula 09 - introducao oo
PPTX
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
PDF
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
PPT
2.1 introdução a oo
PDF
Umlv4 090813182632-phpapp02
PDF
Aula 02 - Principios da Orientação a Objetos (POO)
ODP
Orientação a Objetos (1)
ODP
Orientação a Objetos (introdução)
PDF
Aula orientação a objetos
03 - Orientação a objetos e classes em C# v1.0
03 poo
Introdução à Orientação a Objetos: Aula09_Conceito_OO.pdf
Aula01-IntroducaoOO.pptx
Aula 3 -_fundamentos_sobre_aoo
3.1 orientação objetos
02_revisao_OO.pdf
Programação Orientada por Objectos - Aula 2
Apresentação curso de Extensão em Java (UERJ-IME) v1
Aula3-POO-ConceitosBasicos.pdf
Programação Orientada a Objeto(POO)
Aula 09 - introducao oo
AULA DIA 22-2024 - PROGRAMACAO ORIENTADA A OBJETOS EM JAVA.pptx
POO - Unidade 1 (parte 2) - Orientação a Objetos com Java e UML (versão 4)
2.1 introdução a oo
Umlv4 090813182632-phpapp02
Aula 02 - Principios da Orientação a Objetos (POO)
Orientação a Objetos (1)
Orientação a Objetos (introdução)
Aula orientação a objetos

Mais de Fábio Nogueira de Lucena (20)

PDF
Fundamentos de Programação Front-End
PPTX
JavaScript: Aprendendo a programar
PPTX
HTML5: Primeiros Contatos (visão geral)
PDF
HTTP: Um Curso Básico
PDF
Apresentacao curso-2017-08-08
PPTX
Jornada Goiana em Engenharia de Software 2017
PPTX
PPTX
Introducao integracao
PPTX
Healthdb Visão Geral
PPTX
Engenharia de Software - planejamento pedagógico
PPTX
Arquitetura de Software EXPLICADA
PPT
Arquitetura de Software
PPTX
Arquitetura software
PPTX
Prontuário Eletrônico do Paciente
PPTX
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
ODP
Como desenvolver-software
ODP
Orientação a Objetos (3)
Fundamentos de Programação Front-End
JavaScript: Aprendendo a programar
HTML5: Primeiros Contatos (visão geral)
HTTP: Um Curso Básico
Apresentacao curso-2017-08-08
Jornada Goiana em Engenharia de Software 2017
Introducao integracao
Healthdb Visão Geral
Engenharia de Software - planejamento pedagógico
Arquitetura de Software EXPLICADA
Arquitetura de Software
Arquitetura software
Prontuário Eletrônico do Paciente
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Como desenvolver-software
Orientação a Objetos (3)

Último (12)

PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Jira Software projetos completos com scrum
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Utilizando code blockes por andre backes
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Conceitos básicos de Redes Neurais Artificiais
Jira Software projetos completos com scrum
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Analise Estatica de Compiladores para criar uma nova LP
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Processos no SAP Extended Warehouse Management, EWM100 Col26
Tipos de servidor em redes de computador.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Utilizando code blockes por andre backes
Manejo integrado de pragas na cultura do algodão
Viasol Energia Solar -Soluções para geração e economia de energia

Orientação a objetos (tecnologias)

  • 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