Aula06-Caso pratico POO - static.eventials.com · Exercício"1 Defina classese/ou interfacesque...

65
Programação Orientada a Objetos Conteúdo: Exercícios Java Prof a . Edhelmira Lima

Transcript of Aula06-Caso pratico POO - static.eventials.com · Exercício"1 Defina classese/ou interfacesque...

Programação  Orientada  a  ObjetosConteúdo:  Exercícios  Java

Profa.  Edhelmira  Lima

Exercício  1

3Professora  :  Edhelmira  Lima

Exercício  1Defina classes e/ou interfaces que modelem objetos geométricos. Os objetos geométricos são: retângulo, caixa, círculo e cilindro. Crie classes para estes objetos de forma a aproveitar ao máximo suas características comuns. Nestas classes, crie construtores parametrizados, os quais devem ser utilizados para inicialização dos atributos dos objetos. Para cada objeto, crie métodos para obter seu perímetro (figuras 2D), sua área (externa, no caso das 3D) e volume (figuras 3D).

üRetângulo: Área = largura*comprimento, Perímetro = 2*largura + 2*comprimento

üCaixa: Volume = largura * comprimento *altura, Área = 2*(largura * comprimento + comprimento*altura + largura*altura)

üCírculo: Área = pi*(raio)2, Perímetro = 2*pi*raioüCilindro: Volume = pi*(raio)2*altura, Área = 2*pi*(raio)2 + 2*pi*raio*altura

- Implementar um método mostrar para cada classe- Criar uma classe para testar as funcionalidades acima

4Professora  :  Edhelmira  Lima

Exercício  1Defina classes e/ou interfaces que modelem objetos geométricos. Os objetos geométricos são: retângulo, caixa, círculo e cilindro. Crie classes para estes objetos de forma a aproveitar ao máximo suas características comuns. Nestas classes, crie construtores parametrizados, os quais devem ser utilizados para inicialização dos atributos dos objetos. Para cada objeto, crie métodos para obter seu perímetro (figuras 2D), sua área (externa, no caso das 3D) e volume (figuras 3D).

üRetângulo: Área = largura*comprimento, Perímetro = 2*largura + 2*comprimento

üCaixa: Volume = largura * comprimento *altura, Área = 2*(largura * comprimento + comprimento*altura + largura*altura)

üCírculo: Área = pi*(raio)2, Perímetro = 2*pi*raioüCilindro: Volume = pi*(raio)2*altura, Área = 2*pi*(raio)2 + 2*pi*raio*altura

- Implementar um método mostrar para cada classe- Criar uma classe para testar as funcionalidades acima

5Professora  :  Edhelmira  Lima

Criar  novo  projeto  Java

6Professora  :  Edhelmira  Lima

7Professora  :  Edhelmira  Lima

8Professora  :  Edhelmira  Lima

9Professora  :  Edhelmira  Lima

10Professora  :  Edhelmira  Lima

Mesmo procedimentopara as Classes Retângulo,Caixa e Cilindro

11Professora  :  Edhelmira  Lima

Criar  Interface

12Professora  :  Edhelmira  Lima

Criar  Interface

Uma  interface  permite  definir  um  conjunto  de  métodos  públicos  e  obriga   a  um  determinado  grupo  de  classes  a  ter  métodos  ou  propriedades  em  comum

13Professora  :  Edhelmira  Lima

Criar  Interface

14Professora  :  Edhelmira  Lima

Interface  Objeto  Geométrico

15Professora  :  Edhelmira  Lima

Organização  do  programa

16Professora  :  Edhelmira  Lima

Classe  Circulo

17Professora  :  Edhelmira  Lima

Classe  Circulo

O  Protected é  um  modificador  de  acesso  e  o  utilizamos  para  garantir  que  o  atributo  seja  só  acessível  dentro  da  classe,  nas  classes  

descendentes e  nas  classes  do  mesmo  pacote

Encapsulamento

18Professora  :  Edhelmira  Lima

Classe  Circulo

Os  construtores  servem  para  especificar  como  os  objetos  serão  criados,  ex.  inicialização

19Professora  :  Edhelmira  Lima

Classe  Circulo

Os  métodos  Get e  Setpermitem  recuperar  e  alterar  um  atributo  respectivamente

20Professora  :  Edhelmira  Lima

Classe  Circulo

A  única  forma  de  acessar  a  um  atributo  deve  ser  mediante  os  métodos  Getter e  Setter isto  para  garantir  o  encapsulamento

21Professora  :  Edhelmira  Lima

Classe  Circulo

22Professora  :  Edhelmira  Lima

Classe  Retangulo

23Professora  :  Edhelmira  Lima

Classe  CaixaHerança

Uma  anotação  “Override”  serve  para  especificar  que  estamos  sobre-­‐escrevendoo  método  calcular  área  do  pai

24Professora  :  Edhelmira  Lima

Classe  CaixaHerança

Polimorfismo

25Professora  :  Edhelmira  Lima

Classe  Cilindro

26Professora  :  Edhelmira  Lima

Importando  as  Classes

Classe  Teste

27Professora  :  Edhelmira  Lima

Classe  Teste

Instanciamos  objetos  das  classes  circulo,  retângulo,  

caixa  e  cilindro

28Professora  :  Edhelmira  Lima

Classe  Teste

Alteramos  o  valor  dos  atributos  

29Professora  :  Edhelmira  Lima

Classe  Teste

Imprime  os  métodos  definidos  nas  classes  (área  e  perímetro)

30Professora  :  Edhelmira  Lima

Classe  Teste

Exercício  2

32Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

33Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

34Professora  :  Edhelmira  Lima

Organização  do  programa

35Professora  :  Edhelmira  Lima

Classe  Contato

Atributos

36Professora  :  Edhelmira  Lima

Classe  Contato

37Professora  :  Edhelmira  Lima

Classe  Contato

38Professora  :  Edhelmira  Lima

Uma  anotação  “Override”  serve  para  especificar  que  estamos  sobrescrevendo  o  método  calcular  área  do  pai

39Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

40Professora  :  Edhelmira  Lima

Classe  Agenda  -­ ArrayList

41Professora  :  Edhelmira  Lima

Classe  ArrayList -­ Métodos-­‐ boolean add(Object  element)è Adiciona  o  elemento  especificado  no  final  da  lista.-­‐ void add(int index,  Object element)è Insere  o  elemento  especificado  na  posição  indicada  da  lista.

-­‐ void clear()è Remove  todos  os  elementos  da  lista.-­‐ boolean contains(Object element)è Retorna  verdadeiro  se  a  lista  contém  o  elemento  especificado  e  falso  caso  contrário.

-­‐ Object get(int  index)  è Retorna  o  i-­‐ésimo elemento  da  lista.-­‐ int indexOf(Object element)è Retorna  a  posição  da  primeira  ocorrência  do  elemento  especificado  na  lista.

-­‐ boolean isEmpty()è Retorna  verdadeiro  se  a  lista  estiver  vazia  e  falso  caso  contrário.-­‐ int lastIndexOf(Object element)è Retorna  a  posição  da  última  ocorrência  do  elemento  especificado  na  lista.

-­‐ Object remove(int  index)è Remove  o  i-­‐ésimo elemento  da  lista.-­‐ Object set(int index,  Object element)è Substitui  o  i-­‐ésimo elemento  da  lista  pelo  elemento  especificado.

-­‐ int size()è Retorna  o  número  de  elementos  da  lista.

42Professora  :  Edhelmira  Lima

Classe  Agenda

43Professora  :  Edhelmira  Lima

Classe  Agenda

Atributo  de  tipo  List

44Professora  :  Edhelmira  Lima

Classe  Agenda

Construtor  que  instância  ArrayList

45Professora  :  Edhelmira  Lima

Classe  Agenda

Adicionamos  um  novo  contato  mediante  o  método  add da  Classe  ArrayList

46Professora  :  Edhelmira  Lima

Classe  Agenda

Para  cada  contato  que  está  na  Lista  Contato  imprimimos  o  contato  atual

47Professora  :  Edhelmira  Lima

Classe  Agenda

Para  buscar  um  contato  passamos  como  parâmetro  o  nome  do  contato

48Professora  :  Edhelmira  Lima

Classe  Agenda

Percorremos  cada  elemento  da  lista

49Professora  :  Edhelmira  Lima

Classe  Agenda

A  cada  iteração  recuperamos  o  i-­‐esimocontato  com  o  método  get

50Professora  :  Edhelmira  Lima

Classe  Agenda

Comparamos  mediante  o  método  equals o  nome  procurado  com  o  nome  do  i-­‐esimo contato  

51Professora  :  Edhelmira  Lima

Classe  Agenda

Se  são  iguais  retornamos  o  contato  atual  “c”,  senão  achar  sai  do  lopp

52Professora  :  Edhelmira  Lima

Classe  Agenda

Mediante  o  método  “remove”  da  classe  ArrayListremovemos  o  contato  que  foi  previamente  procurado

53Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

54Professora  :  Edhelmira  Lima

Classe  Teste

55Professora  :  Edhelmira  Lima

Classe  Teste

Instanciamos  quatro  objetos  da  classe  contato,  cada  um  com  dados  diferentes

56Professora  :  Edhelmira  Lima

Classe  Teste

Instanciamos  um  objeto  agenda  que  criará  um  ArrayList vazia  

57Professora  :  Edhelmira  Lima

Classe  Teste

Adicionamos  os  objetos  contatos  dentro  da  agenda

58Professora  :  Edhelmira  Lima

Executando  o  programa

59Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

60Professora  :  Edhelmira  Lima

Classe  Teste

61Professora  :  Edhelmira  Lima

Executando  o  programa

62Professora  :  Edhelmira  Lima

Exercício  2

Crie a classe Contato com atributos nome, email e telefone, depois crie a classe Agenda contendo uma lista de contatos e implemente os métodos para:

ü Adicionar contatosü Procurar por um contato (dado o nome, recuperar o telefone e email)ü Remover contatoü Listar todos os contatos

63Professora  :  Edhelmira  Lima

64Professora  :  Edhelmira  Lima

FIM