Uma breve introdução a
Orientação a Objetos,
UML e Java
Agenda
Introdução a Orientação a Objetos
● Definição;
● Tudo é Objeto. Será?
● Resolvendo um problema (quase) real.
● Clas...
Ao final...
Você será capaz de:
● Entender o básico de Orientação a Objetos;
● Identificar e criar um Diagrama de Classe;
...
Quem sou?
Hoje
● Senior Game Developer na Gazeus Games;
○ Maior empresa brasileira de jogos sociais.
No passado...
● VIVO,...
Introdução a OO
Segundo a Wikipédia:
“A orientação a objetos é um paradigma de
análise, projeto e programação de sistemas
...
Introdução a OO
Existem quase 30 paradigmas de programação
e os principais (ou mais comuns) são:
● Imperativa (e.g. Fortra...
Introdução a OO
Tudo é Objeto!
● Identidade;
○ O que o distingue de outros objetos?
● Possui características;
○ Dados arma...
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
○ Est...
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
○ Est...
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
○ Est...
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
○ Est...
Introdução a OO
Minha caneta azul possui:
● Identidade: o que a difere das outras canetas
azuis existentes no mundo?
○ Est...
Introdução a OO
Um fusca fabricado em 1977, preto e de placa
ABC-1234 como um Objeto:
● Identidade?
● Características?
● C...
Introdução a OO
Um fusca fabricado em 1977, preto e de placa
ABC-1234 como um Objeto:
● Identidade?
○ ABC-1234
● Caracterí...
Introdução a OO
Definir um programa usando o conceito de
objetos vai forçá-lo a ver o problema a ser
resolvido baseado no ...
Introdução a OO
Definir um programa usando o conceito de
objetos vai forçá-lo a ver o problema a ser
resolvido baseado no ...
Introdução a OO
Definir um programa usando o conceito de
objetos vai forçá-lo a ver o problema a ser
resolvido baseado no ...
Introdução a OO
Definir um programa usando o conceito de
objetos vai forçá-lo a ver o problema a ser
resolvido baseado no ...
SOFTWARE DEVELOPMENT INC.
Introdução a OO
Você é funcionário da ACME Software.
Um time de desenvolvedores (incluindo você) irá
criar um e-commerce s...
Introdução a OO
São requisitos funcionais do sistema:
● Permitir que a empresa faça o cadastro de
produtos a serem vendido...
Introdução a OO
São requisitos funcionais do sistema:
● Permitir que a empresa faça o cadastro de
produtos a serem vendido...
Introdução a OO
São requisitos funcionais do sistema:
● Permitir que o usuário realize a compra de um
único produto por ve...
Introdução a OO
São requisitos funcionais do sistema:
● Permitir que o usuário realize a compra de um
único produto por ve...
Introdução a OO
Vela e Boneca são Produtos:
● Compartilham de características semelhantes;
Biologia: gatos, cachorros, gol...
Introdução a OO
A compra por um cliente é um Registro de
Venda:
● Contém informações de entrega, cobrança e
produto vendid...
Introdução a OO
Produto Registro de Venda
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preç...
O que define um Objeto?
● Identidade;
● Características;
● Comportamento.
Introdução a OO
Produto
Vela
Cor: vermelho
Peso:...
O que define um Objeto?
● Identidade;
○ Nome ou código do produto.
● Características;
○ Cor, peso, preço e tecido.
● Compo...
Introdução a OO
Produto
+ nome
+ peso
+ preco
+ cor
+ tecido
O que define um Objeto?
● Identidade;
○ Nome ou código do pro...
Introdução a OO
Produto
+ nome : String
+ peso : Integer
+ preco : Double
+ cor : String
+ tecido : String
O que define um...
Introdução a OO
Produto
+ nome : String
+ peso : Integer
+ preco : Double
+ cor : String
+ tecido : String
Parabéns!
Você ...
UML?
Introdução a OO
RegistroVenda
O que define um Objeto?
● Identidade;
● Características;
● Comportamento
Introdução a OO
RegistroVenda
+ codigoVenda
O que define um Objeto?
● Identidade;
○ Código da venda.
● Características;
● ...
Introdução a OO
RegistroVenda
+ codigoVenda
+ nomeCliente
+ emailCliente
+ enderecoEntrega
+ numeroCartaoCredito
O que def...
O que define um Objeto?
● Identidade;
○ Código da venda.
● Características;
○ Dados do cliente e da venda.
● Comportamento...
O que define um Objeto?
● Identidade;
○ Código da venda.
● Características;
○ Dados do cliente e da venda.
● Comportamento...
Introdução a OO
RegistroVenda
+ codigoVenda : Integer
+ nomeCliente : String
+ emailCliente : String
+ enderecoEntrega : S...
Introdução a OO
Diagrama de Classe
RegistroVenda
+ codigoVenda : Integer
+ nomeCliente : String
+ emailCliente : String
+ ...
Introdução a OO
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preço: R$20
Introdução a OO
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preço: R$20
Produto
+ nome : S...
Introdução a OO
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preço: R$20
Produto
+ nome : S...
Introdução a OO
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preço: R$20
Produto
+ nome : S...
Introdução a OO
Vela
Cor: vermelho
Peso: 500g
Preço: R$10
Boneca
Peso: 200g
Tecido: algodão
Preço: R$20
Produto
+ nome : S...
Introdução a OO
Produto
+ nome : String
+ peso : Integer
+ preco : Double
Vela
+ cor : String
Boneca
+ tecido : String
Em ...
Introdução a OO
Produto
+ nome : String
+ peso : Integer
+ preco : Double
Vela
+ nome : String
+ peso : Integer
+ preco : ...
Introdução a OO
RegistroVenda
+ codigoVenda : Integer
+ nomeCliente : String
+ emailCliente : String
+ enderecoEntrega : S...
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ codigoVenda : Integ...
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ codigoVenda : Integ...
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ codigoVenda : Integ...
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ codigoVenda : Integ...
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ codigoVenda : Integ...
Diagrama de Classe
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ ...
Diagrama de Classe
Introdução a OO
Cliente
+ cpf : Integer
+ nomeCliente : String
+ emailCliente : String
RegistroVenda
+ ...
Introdução a OO
Relembrando o que é um Objeto...
● Identidade;
● Possui características;
● Comportamento
○ Conjunto de açõ...
Comportamento
● Conjunto de ações que descrevem como o
objeto pode ser usado.
Introdução a OO
Humano
+ nome : String
+ dat...
Comportamento
● Conjunto de ações que descrevem como o
objeto pode ser usado.
Introdução a OO
Humano
+ nome : String
+ dat...
Seria impresso na tela...
Olá pessoal!
Introdução a OO
Humano
+ nome : String
+ dataNascimento : Date
+ peso : Integer
+ p...
Seria impresso na tela...
Olá pessoal!
Introdução a OO
Humano
+ nome : String
+ dataNascimento : Date
+ peso : Integer
+ p...
Introdução a OO
Comportamento
● Conjunto de ações que descrevem como o
objeto pode ser usado.
Mamifero
+ nome : String
+ d...
Introdução a OO
Comportamento
● Conjunto de ações que descrevem como o
objeto pode ser usado.
Mamifero
+ nome : String
+ d...
Introdução a OO
A herança permite que novas classes
aproveitem atributos e comportamentos.
Mamifero
+ nome : String
+ data...
Introdução a OO
Mamifero
+ nome : String
+ dataNascimento : Date
+ peso
+ produzirSom()
Cão
+ produzirSom()
Humano
+ produ...
Introdução a OO
Cão: Olá pessoal!
Humano: Olá pessoal!
Gato: Olá pessoal!
Mamifero
+ nome : String
+ dataNascimento : Date...
Cão: Olá pessoal!
Humano: Olá pessoal!
Gato: Olá pessoal!
WHAT ...?
Introdução a OO
Introdução a OO
Solução: declarar na classe base e implementar
o método apenas nas classes herdeiras.
Palavra-chave: abstr...
Introdução a OO
public class Mamifero {
public String nome;
public Date dataNascimento;
public Integer peso;
public abstra...
Introdução a OO
public class Mamifero {
public String nome;
public Date dataNascimento;
public Integer peso;
public abstra...
Referência Bibliográfica
● Sams Teach Yourself Object Oriented Programming in 21 Days - 2002 - Sams
Publishing - Tony Sint...
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a Objetos
Introdução a Orientaçãoo a Objetos
Próximos SlideShares
Carregando em…5
×

Introdução a Orientaçãoo a Objetos

214 visualizações

Publicada em

Rascunho de uma introdução a Orientação a Objetos criada em 2013.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
214
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução a Orientaçãoo a Objetos

  1. 1. Uma breve introdução a Orientação a Objetos, UML e Java
  2. 2. Agenda Introdução a Orientação a Objetos ● Definição; ● Tudo é Objeto. Será? ● Resolvendo um problema (quase) real. ● Classe ● Herança ● Polimorfismo ● Encapsulamento
  3. 3. Ao final... Você será capaz de: ● Entender o básico de Orientação a Objetos; ● Identificar e criar um Diagrama de Classe; ● Identificar uma composição de objetos; ● Entender a importância da herança entre objetos e do polimorfismo.
  4. 4. Quem sou? Hoje ● Senior Game Developer na Gazeus Games; ○ Maior empresa brasileira de jogos sociais. No passado... ● VIVO, Ponto-Frio, Embratel, SEFAZ (Cupom Mania) e TECPAR (Instituto de Tecnologia do Paraná); ● Consultoria para pequenas empresas de desenvolvimento de software; ● Há 15 anos desenvolvendo softwares (profissionalmente) de um total de 22 brincando com computadores (tk90!).
  5. 5. Introdução a OO Segundo a Wikipédia: “A orientação a objetos é 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.”
  6. 6. Introdução a OO Existem quase 30 paradigmas de programação e os principais (ou mais comuns) são: ● Imperativa (e.g. Fortran, BASIC e C) ● Funcional (e.g. Haskell, Scala e SQL) ● Declarativa (e.g. HTML e SQL) ● Orientada a Objetos (e.g. Java e C++)
  7. 7. Introdução a OO Tudo é Objeto! ● Identidade; ○ O que o distingue de outros objetos? ● Possui características; ○ Dados armazenados “dentro” do objeto; ● Comportamento ○ Conjunto de ações que descrevem como o objeto pode ser usado. Desafio: vocês conseguem pensar em algo que não se enquadre nesta regra?
  8. 8. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo?
  9. 9. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo? ○ Esta caneta azul é minha e de mais ninguém.
  10. 10. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo? ○ Esta caneta azul é minha e de mais ninguém. ● Características: quais os dados desta caneta?
  11. 11. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo? ○ Esta caneta azul é minha e de mais ninguém. ● Características: quais os dados desta caneta? ○ Tinta: azul, preço: R$500 e recarregável: sim.
  12. 12. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo? ○ Esta caneta azul é minha e de mais ninguém. ● Características: quais os dados desta caneta? ○ Tinta: azul, preço: R$500 e recarregável: sim. ● Comportamento: quais ações posso realizar com a caneta?
  13. 13. Introdução a OO Minha caneta azul possui: ● Identidade: o que a difere das outras canetas azuis existentes no mundo? ○ Esta caneta azul é minha e de mais ninguém. ● Características: quais os dados desta caneta? ○ Tinta: azul, preço: R$500 e recarregável: sim. ● Comportamento: quais ações posso realizar com a caneta? ○ Escrever, tampar, destampar, recarregar, ...
  14. 14. Introdução a OO Um fusca fabricado em 1977, preto e de placa ABC-1234 como um Objeto: ● Identidade? ● Características? ● Comportamento?
  15. 15. Introdução a OO Um fusca fabricado em 1977, preto e de placa ABC-1234 como um Objeto: ● Identidade? ○ ABC-1234 ● Características? ○ Cor: preto, ano de fabricação: 1977, fabricante: Volkswagen ● Comportamento? ○ Ligar, desligar, acelerar, frear, ...
  16. 16. Introdução a OO Definir um programa usando o conceito de objetos vai forçá-lo a ver o problema a ser resolvido baseado no que o objeto (ou coleção de objetos) faz e/ou é capaz de fazer.
  17. 17. Introdução a OO Definir um programa usando o conceito de objetos vai forçá-lo a ver o problema a ser resolvido baseado no que o objeto (ou coleção de objetos) faz e/ou é capaz de fazer. Modelar um programa como um conjunto de procedimentos isolados? Modelar um programa usando objetos com nomes e termos reais!
  18. 18. Introdução a OO Definir um programa usando o conceito de objetos vai forçá-lo a ver o problema a ser resolvido baseado no que o objeto (ou coleção de objetos) faz e/ou é capaz de fazer. Problema: empresa familiar produz artesanato, possui website mas não realiza vendas online.
  19. 19. Introdução a OO Definir um programa usando o conceito de objetos vai forçá-lo a ver o problema a ser resolvido baseado no que o objeto (ou coleção de objetos) faz e/ou é capaz de fazer. Problema: empresa familiar produz artesanato, possui website mas não realiza vendas online e em 1 mês irá à falência se não aumentar suas vendas.
  20. 20. SOFTWARE DEVELOPMENT INC.
  21. 21. Introdução a OO Você é funcionário da ACME Software. Um time de desenvolvedores (incluindo você) irá criar um e-commerce simples. Você está encarregado de começar a documentar e criar os primeiros códigos.
  22. 22. Introdução a OO São requisitos funcionais do sistema: ● Permitir que a empresa faça o cadastro de produtos a serem vendidos; ● Permitir que o usuário realize a compra de um único produto por vez.
  23. 23. Introdução a OO São requisitos funcionais do sistema: ● Permitir que a empresa faça o cadastro de produtos a serem vendidos; Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20
  24. 24. Introdução a OO São requisitos funcionais do sistema: ● Permitir que o usuário realize a compra de um único produto por vez. Como será concluída a venda? ● Da forma mais simples possível. Quais informações compõem uma venda?
  25. 25. Introdução a OO São requisitos funcionais do sistema: ● Permitir que o usuário realize a compra de um único produto por vez. Joaquim José da Silva Xavier Endereço de entrega E-mail Número do cartão de crédito Nome do produto Valor da venda
  26. 26. Introdução a OO Vela e Boneca são Produtos: ● Compartilham de características semelhantes; Biologia: gatos, cachorros, golfinhos e humanos são mamíferos;
  27. 27. Introdução a OO A compra por um cliente é um Registro de Venda: ● Contém informações de entrega, cobrança e produto vendido.
  28. 28. Introdução a OO Produto Registro de Venda Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20 Joaquim José da Silva Xavier Endereço de entrega E-mail Número do cartão de crédito Nome do produto Valor da venda
  29. 29. O que define um Objeto? ● Identidade; ● Características; ● Comportamento. Introdução a OO Produto Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20
  30. 30. O que define um Objeto? ● Identidade; ○ Nome ou código do produto. ● Características; ○ Cor, peso, preço e tecido. ● Comportamento. ○ Vamos ver isso depois... Introdução a OO Produto Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20
  31. 31. Introdução a OO Produto + nome + peso + preco + cor + tecido O que define um Objeto? ● Identidade; ○ Nome ou código do produto. ● Características; ○ Cor, peso, preço e tecido. ● Comportamento. ○ Vamos ver isso depois...
  32. 32. Introdução a OO Produto + nome : String + peso : Integer + preco : Double + cor : String + tecido : String O que define um Objeto? ● Identidade; ○ Nome ou código do produto. ● Características; ○ Cor, peso, preço e tecido. ● Comportamento. ○ Vamos ver isso depois...
  33. 33. Introdução a OO Produto + nome : String + peso : Integer + preco : Double + cor : String + tecido : String Parabéns! Você acaba de criar seu primeiro diagrama UML! Diagrama de Classe
  34. 34. UML?
  35. 35. Introdução a OO RegistroVenda O que define um Objeto? ● Identidade; ● Características; ● Comportamento
  36. 36. Introdução a OO RegistroVenda + codigoVenda O que define um Objeto? ● Identidade; ○ Código da venda. ● Características; ● Comportamento.
  37. 37. Introdução a OO RegistroVenda + codigoVenda + nomeCliente + emailCliente + enderecoEntrega + numeroCartaoCredito O que define um Objeto? ● Identidade; ○ Código da venda. ● Características; ○ Dados do cliente. ● Comportamento.
  38. 38. O que define um Objeto? ● Identidade; ○ Código da venda. ● Características; ○ Dados do cliente e da venda. ● Comportamento; ○ ... Introdução a OO RegistroVenda + codigoVenda + nomeCliente + emailCliente + enderecoEntrega + numeroCartaoCredito + nomeProduto + valorVenda
  39. 39. O que define um Objeto? ● Identidade; ○ Código da venda. ● Características; ○ Dados do cliente e da venda. ● Comportamento; ○ Vamos ver isso depois... Introdução a OO RegistroVenda + codigoVenda + nomeCliente + emailCliente + enderecoEntrega + numeroCartaoCredito + nomeProduto + valorVenda
  40. 40. Introdução a OO RegistroVenda + codigoVenda : Integer + nomeCliente : String + emailCliente : String + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Produto + nome : String + peso : Integer + preco : Double + cor : String + tecido : String Diagrama de Classe
  41. 41. Introdução a OO Diagrama de Classe RegistroVenda + codigoVenda : Integer + nomeCliente : String + emailCliente : String + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Produto + nome : String + peso : Integer + preco : Double + cor : String + tecido : StringSerá possível melhorar este diagrama?
  42. 42. Introdução a OO Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20
  43. 43. Introdução a OO Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20 Produto + nome : String + peso : Integer + preco : Double
  44. 44. Introdução a OO Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20 Produto + nome : String + peso : Integer + preco : Double Vela + cor : String
  45. 45. Introdução a OO Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20 Produto + nome : String + peso : Integer + preco : Double Vela + cor : String Boneca + tecido : String
  46. 46. Introdução a OO Vela Cor: vermelho Peso: 500g Preço: R$10 Boneca Peso: 200g Tecido: algodão Preço: R$20 Produto + nome : String + peso : Integer + preco : Double Vela + cor : String Boneca + tecido : String
  47. 47. Introdução a OO Produto + nome : String + peso : Integer + preco : Double Vela + cor : String Boneca + tecido : String Em Orientação a Objetos, herança é um mecanismo que permite que você crie uma nova classe com base em uma já existente, aproveitando suas propriedades e comportamentos.
  48. 48. Introdução a OO Produto + nome : String + peso : Integer + preco : Double Vela + nome : String + peso : Integer + preco : Double + cor : String Boneca + nome : String + peso : Integer + preco : Double + tecido : String Em Orientação a Objetos, herança é um mecanismo que permite que você crie uma nova classe com base em uma já existente, aproveitando suas propriedades e comportamentos.
  49. 49. Introdução a OO RegistroVenda + codigoVenda : Integer + nomeCliente : String + emailCliente : String + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Continuando com nosso processo de melhoria...
  50. 50. Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + nomeCliente : String + emailCliente : String + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double
  51. 51. Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double
  52. 52. Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : String + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Endereco + logradouro : String + numero : String + complemento : String + cidade : String + uf : String + cep : Integer
  53. 53. Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : Endereco + enderecoCobranca : Endereco + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Endereco + logradouro : String + numero : String + complemento : String + cidade : String + uf : String + cep : Integer
  54. 54. Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : Endereco + enderecoCobranca : Endereco + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Endereco + logradouro : String + numero : String + complemento : String + cidade : String + uf : String + cep : Integer
  55. 55. Diagrama de Classe Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : Endereco + enderecoCobranca : Endereco + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Endereco + logradouro : String + numero : String + complemento : String + cidade : String + uf : String + cep : Integer Produto + nome : String + peso : Integer + preco : Double Vela + cor : String Boneca + tecido : String
  56. 56. Diagrama de Classe Introdução a OO Cliente + cpf : Integer + nomeCliente : String + emailCliente : String RegistroVenda + codigoVenda : Integer + cliente : Cliente + enderecoEntrega : Endereco + enderecoCobranca : Endereco + numeroCartaoCredito : Integer + nomeProduto : String + valorVenda : Double Endereco + logradouro : String + numero : String + complemento : String + cidade : String + uf : String + cep : Integer Produto + nome : String + peso : Integer + preco : Double Vela + cor : String Boneca + tecido : String
  57. 57. Introdução a OO Relembrando o que é um Objeto... ● Identidade; ● Possui características; ● Comportamento ○ Conjunto de ações que descrevem como o objeto pode ser usado.
  58. 58. Comportamento ● Conjunto de ações que descrevem como o objeto pode ser usado. Introdução a OO Humano + nome : String + dataNascimento : Date + peso : Integer + produzirSom()
  59. 59. Comportamento ● Conjunto de ações que descrevem como o objeto pode ser usado. Introdução a OO Humano + nome : String + dataNascimento : Date + peso : Integer + produzirSom() public class Humano { public String nome; public Date dataNascimento; public Integer peso; public void produzirSom() { System.out.println("Olá pessoal"); } }
  60. 60. Seria impresso na tela... Olá pessoal! Introdução a OO Humano + nome : String + dataNascimento : Date + peso : Integer + produzirSom() public class Humano { public String nome; public Date dataNascimento; public Integer peso; public void produzirSom() { System.out.println("Olá pessoal!"); } }
  61. 61. Seria impresso na tela... Olá pessoal! Introdução a OO Humano + nome : String + dataNascimento : Date + peso : Integer + produzirSom() public class Humano { public String nome; public Date dataNascimento; public Integer peso; public void produzirSom() { System.out.println("Olá pessoal!"); } } Parabéns! Você acaba de entender seu primeiro código Java!
  62. 62. Introdução a OO Comportamento ● Conjunto de ações que descrevem como o objeto pode ser usado. Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão Humano Gato
  63. 63. Introdução a OO Comportamento ● Conjunto de ações que descrevem como o objeto pode ser usado. Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão + ... Humano + ... Gato + ...
  64. 64. Introdução a OO A herança permite que novas classes aproveitem atributos e comportamentos. Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão + ... Humano + ... Gato + ...
  65. 65. Introdução a OO Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão + produzirSom() Humano + produzirSom() Gato + produzirSom()
  66. 66. Introdução a OO Cão: Olá pessoal! Humano: Olá pessoal! Gato: Olá pessoal! Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão + produzirSom() Humano + produzirSom() Gato + produzirSom()
  67. 67. Cão: Olá pessoal! Humano: Olá pessoal! Gato: Olá pessoal! WHAT ...? Introdução a OO
  68. 68. Introdução a OO Solução: declarar na classe base e implementar o método apenas nas classes herdeiras. Palavra-chave: abstract. Mamifero + nome : String + dataNascimento : Date + peso + produzirSom() Cão + produzirSom() Humano + produzirSom() Gato + produzirSom()
  69. 69. Introdução a OO public class Mamifero { public String nome; public Date dataNascimento; public Integer peso; public abstract void produzirSom(); } public class Cao extends Mamifero { public void produzirSom() { System.out.println("Au au!"); } } public class Humano extends Mamifero { public void produzirSom() { System.out.println("Olá pessoal!"); } } public class Gato extends Mamifero { public void produzirSom() { System.out.println("Miau!"); } }
  70. 70. Introdução a OO public class Mamifero { public String nome; public Date dataNascimento; public Integer peso; public abstract void produzirSom(); } public class Cao extends Mamifero { public void produzirSom() { System.out.println("Au au!"); } } public class Humano extends Mamifero { public void produzirSom() { System.out.println("Olá pessoal!"); } } public class Gato extends Mamifero { public void produzirSom() { System.out.println("Miau!"); } } Cão: Au au! Humano: Olá pessoal! Gato: Miau!
  71. 71. Referência Bibliográfica ● Sams Teach Yourself Object Oriented Programming in 21 Days - 2002 - Sams Publishing - Tony Sintes ● Head First Object-Oriented Analysis & Design, O'Reilly, McLaughlin et. al., 2007 ● ROY, Peter Van. Programming Paradigms for Dummies: What Every Programmer Should Know. Disponível em <http://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf>. Acesso em: 10 maio 2013. ● COHEN, Marcelo. Introdução à Programação Orientada a Objetos. Disponível em <http://www.inf.pucrs.br/flash/lapro2/lapro2_1.pdf>. Acesso em: 10 maio 2013. ● WIKIPEDIA, Orientação a Objetos. Disponível em <http://pt.wikipedia. org/wiki/Orientação_a_objetos>. Acesso em: 10 maio 2013. ● COSTA, André Luiz Monteiro da. Orientação a Objetos na Prática. Disponível em <http://www.slideshare.net/tiinfnet/orientao-a-objetos-na-prtica>. Acesso em: 10 maio 2013.

×