Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma...
Transcript of Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma...
![Page 2: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/2.jpg)
Paradigmaprocedimental• Sinônimo:paradigmaprocedural• Usodesubprogramação
– AgrupamentodecódigopermiAndoacriaçãodeaçõescomplexas– Atribuiçãodeumnomeparaessasaçõescomplexas– Chamadaaessasaçõescomplexasdequalquerpontodoprograma
• Essasaçõescomplexassãodenominadasprocedimentos,sub-roAnasefunções
Leonardo Murta OO 2
![Page 3: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/3.jpg)
Paradigmaorientadoaobjetos(OO)• Classesdeobjetos
– Agrupamentodeprocedimentosevariáveisafins• Pacotesdeclasses
– Agrupamentodeclassesafins– Representambibliotecasdeapoio
Leonardo Murta 3 OO
![Page 4: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/4.jpg)
ParadigmaprocedimentalversusOO
Leonardo Murta OO 4
• Oparadigmaprocedimentalorganizaoprogramaemtermosdealgoritmos
• OparadigmaOOorganizaoprogramaemtermosdeobjetos
AlgoritmosObjetos
![Page 5: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/5.jpg)
AlgoritmosObjetos• Podemoscriarprogramapensandoemtermosdeobjetosaoinvésdealgoritmos?
• Omundoécompostodeobjetos– Umalojatemprodutos,pedidos,estoque,etc.– Umrestaurantetemmesas,garçons,comidas,bebidas,etc.
– Umauniversidadetemprofessores,alunos,disciplinas,etc.– Umarodoviáriatemônibus,passageiros,bagagens,etc.
• Esecriarmosprogramasbasicamentecriandoobjetosequivalentesaomundoreal,efazendocomqueessesobjetossecomuniquem?
Leonardo Murta OO 5
![Page 6: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/6.jpg)
Leonardo Murta OO 6
• Definição– Umobjetoéarepresentaçãocomputacionaldeumelementoouprocessodomundoreal
– Cadaobjetopossuisuascaracterís:caseseucomportamento
• ExemplosdeObjetos
cadeira mesa caneta lápiscarro piloto venda mercadoriacliente aula programa computadoraluno avião
Objetos
![Page 7: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/7.jpg)
Leonardo Murta OO 7
• Definição– UmacaracterísAcadescreveumapropriedadedeumobjeto,ouseja,algumelementoquedescrevaoobjeto.
– CadacaracterísAcaéchamadadeatributoefuncionacomoumavariávelpertencenteaoobjeto
• ExemplodecaracterísAcasdoobjetocarro– Cor– Marca– Númerodeportas– Anodefabricação– Tipodecombus[vel
CaracterísAcasdeobjetos
![Page 8: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/8.jpg)
Leonardo Murta OO 8
• Definição– Umcomportamentorepresentaumaaçãoourespostadeumobjetoaumaaçãodomundoreal
– Cadacomportamentoéchamadodemétodoefuncionacomoumprocedimento/funçãopertencenteaoobjeto
• Exemplosdecomportamentoparaoobjetocarro– Acelerar– Frear– Virarparadireita– Virarparaesquerda
Comportamentodeobjetos
![Page 9: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/9.jpg)
Leonardo Murta OO 9
Características
Comportamento
Objeto no Mundo Real
Atributos
Métodos
Objeto Computacional
Mapeamentodeobjetos
![Page 10: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/10.jpg)
ParadigmaprocedimentalversusOO(exemplo:Agenda)
ParadigmaProcedimental• Variáveis
– Vetordenomes– Vetordeendereços– Vetordetelefones
• Procedimentos– Listagemdetodososnomes– Listagemdoendereçodadoum
nome– Listagemdotelefonedadoum
nome– Adiçãodenome,endereçoe
telefone– Remoçãodenome,endereçoe
telefone
ParadigmaOO• ObjetoAgenda
– Atributo• VetordeContatos
– Métodos• ListagemdeContatos• AdiçãodeumContato• RemoçãodeumContato
• ObjetoContato– Atributos
• Nome• Endereço• Telefone
– Métodos• Exibiçãodenome,endereçoe
telefone• Ediçãodenome,endereçoetelefone
Leonardo Murta OO 10
![Page 11: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/11.jpg)
ParadigmaOO(exemplo:totaldacompra)
Leonardo Murta OO 11
Quais são os objetos participantes do cálculo do total da compra?
Pedido:12345Cliente:JoãodaSilvaEndereço:RuadosBobos,númerozero
Item Produto Preço QuanAdade Subtotal
1 Açúcar R$2,00 5 R$10,00
2 Macarrão R$2,50 2 R$5,00
3 Feijão R$3,00 3 R$9,00
TOTAL R$24,00
![Page 12: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/12.jpg)
ParadigmaOO(exemplo:totaldacompra)
Leonardo Murta OO 12
Pedido:12345Cliente:JoãodaSilvaEndereço:RuadosBobos,númerozero
Item Produto Preço QuanAdade Subtotal
1 Açúcar R$2,00 5 R$10,00
2 Macarrão R$2,50 2 R$5,00
3 Feijão R$3,00 3 R$9,00
TOTAL R$24,00
Pedido12345
Item1
Item2
Item3
ProdutoAçúcar
ProdutoMacarrão
5
ProdutoFeijão
2
3
2,00
2,50
3,00
![Page 13: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/13.jpg)
ParadigmaOO(exemplo:totaldacompra)
• Comoobterototaldacompra?1. OobjetoCaixapediriaaoobjetoPedidoseuvalor
total2. OobjetoPedido,porsuavez,percorreriatodosos
seusobjetosItemperguntandooseuvalorsubtotalesomariaessesvalorespararesponderaoobjetoCaixa
3. CadaobjetoItemperguntariaaoobjetoProdutooseupreçoemulAplicariaessepreçopelaquanAdadequeestásendocomprada,pararesponderaoobjetoPedido
Leonardo Murta OO 13
![Page 14: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/14.jpg)
PrincípiosdoparadigmaOO
Abstração Encapsulamento
Modularidade Hierarquia
Leonardo Murta OO 14
![Page 15: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/15.jpg)
Abstração• Arepresentaçãocomputacionaldoobjetorealdeveseconcentrar
nascaracterísAcasquesãorelevantesparaoproblema
Leonardo Murta OO 15
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 16: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/16.jpg)
Abstração• Sãocriadossomenteosatributosemétodosnecessáriosparao
problemaemmãos• QuaisseriamosatributosemétodosparaoobjetoCarroemcada
umadassituaçõesseguintes?– Sistemadeumalocadoradecarros– Sistemadeumarevendedoradecarros– Sistemadeumaoficinamecânica– SistemadoDETRAN
Leonardo Murta OO 16
![Page 17: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/17.jpg)
Encapsulamento• Oobjetodeveesconderseusdadoseosdetalhesdesua
implementação
Leonardo Murta OO 17
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 18: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/18.jpg)
Leonardo Murta OO 18
• AtributoseMétodos– Osmétodosformamuma“cerca”emtornodosatributos– Osatributosnãodevemsermanipuladosdiretamente– Osatributossomentedevemseralteradosouconsultadosatravésdosmétodosdoobjeto
Encapsulamento
![Page 19: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/19.jpg)
Encapsulamento
Chamadas de Métodos
Métodos Públicos
Métodos e Atributos privados Leonardo Murta OO 19
![Page 20: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/20.jpg)
Modularidade• Umsistemadeveserdecompostoemumconjuntoaltamente
coesoefracamenteacopladodeobjetos
Leonardo Murta OO 20
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 21: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/21.jpg)
Leonardo Murta OO 21
• UmprogramaOOéumconjuntodeobjetosquecolaboramentresiparaasoluçãodeumproblema
• Objetoscolaboramatravésdechamadasdemétodosunsdosoutros
Motorista
Carro Freia
Modularidade
![Page 22: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/22.jpg)
Hierarquia• Osobjetosdevemserorganizadosnosistemadeformahierárquica
Leonardo Murta OO 22
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 23: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/23.jpg)
Hierarquia• Objetosherdamatributosemétodosdosseusancestraisna
hierarquia
Leonardo Murta OO 23
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 24: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/24.jpg)
Classesversusobjetos• AClasseéo:podoObjeto
Leonardo Murta OO 24
Fonte: livro “Object-Oriented Analysis and Design with Applications”
![Page 25: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/25.jpg)
Classesversusobjetos• ValorestêmAposprimiAvos
– 123éumvalorinteiro– Trueéumvalorbooleano– 12,3éumvalorreal
• Objetospertencemaclasses– João,PedroePaulosãodaclassePessoa– FuscaeFerrarisãodaclasseCarro– FlamengoeFluminensesãodaclasseTime
Leonardo Murta OO 25
TiposPrimiAvos Valores
Classes Objetos
![Page 26: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/26.jpg)
Classesversusobjetos• Umaclasseéumafôrma,capazdeproduzirobjetos• Osprogramadorescriamclasses,asclassesinstanciamobjetos
Leonardo Murta OO 26
ClassePessoa
João,10anos,olhosverdes
Maria,14anos,olhosazuis
Pedro,56anos,olhos
marrons
Isabel,90anos,olhosverdes
Paulo,40anos,olhos
castanhos
![Page 27: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/27.jpg)
Leonardo Murta OO 27
• AclassedescreveascaracterísAcasecomportamentodeumconjuntodeobjetos– EmJava,cadaobjetopertenceaumaúnicaclasse– Oobjetopossuiráosatributosemétodosdefinidosnaclasse
– Oobjetoéchamadodeinstânciadesuaclasse– AclasseéoblocobásicoparaaconstruçãodeprogramasOO
Classes
![Page 28: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/28.jpg)
Exemplodeclassepublic class Carro {
private int velocidade;
public void acelera() {
velocidade++;
}
public void freia() {
velocidade--;
}
}
Leonardo Murta OO 28
Atributos (características) são variáveis globais acessíveis por
todos os métodos da classe
Métodos (comportamentos)
![Page 29: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/29.jpg)
Leonardo Murta OO 29
• Paraviabilizarahierarquiaentreobjetos,asclassessãoorganizadasemestruturashierárquicas– Aclassequeforneceuoselementosherdadoséchamadadesuperclasse
– Aclasseherdeiraéchamadadesubclasse– Asubclassepodeherdarosmétodoseatributosdesuassuperclasses
– Asubclassepodedefinirnovosatributosemétodosespecíficos
Herança
![Page 30: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/30.jpg)
Leonardo Murta OO 30
Veículo
Bicicleta Automóvel Navio Avião
Furgão Carro Caminhão Trator
Exemplodeherança
![Page 31: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/31.jpg)
Exercício• IdenAfiqueasclassesparaaseguinteespecificação:
“Osupermercadovendediferentes7posdeprodutos.Cadaprodutotemumpreçoeumaquan7dadeemestoque.Umpedidodeumclienteécompostode itens,ondecada itemespecifica o produto que o cliente deseja e a respec7vaquan7dade.Essepedidopodeserpagoemdinheiro,chequeoucartão.”
Leonardo Murta OO 31
![Page 32: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/32.jpg)
Interfaces• Tipoespecialdeclasse,quenãotemimplementação
– Umainterfacedefineumprotocolo– Classespodemimplementarumaoumaisinterfaces
• Umainterfaceéumcontratoassinadoporumaclasse– Ainterfacedefineasresponsabilidadesdaclasse– Asresponsabilidadessãomapeadasemmétodos– Aclassequeimplementaainterfaceimplementaosmétodos
– Ainterfacecontémsomenteassinaturademétodoseconstantes
Leonardo Murta OO 32
![Page 33: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/33.jpg)
Interfaces
public interface Taxavel {
int ANO_INICIO = 1996; double calculaTaxa ();
}
Leonardo Murta OO 33
![Page 34: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/34.jpg)
Classesabstratas• Umaclassequepossuialgummétodosemimplementação(abstratos)
• Classesabstratasnãopodemterinstâncias
abstract class Carro {
<atributos da classe Carro> <métodos comuns da classe Carro>
<métodos abstratos da classe Carro>
}
Leonardo Murta OO 34
![Page 35: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/35.jpg)
Exemplopublic class Ferrari extends Carro implements Taxavel
{
<atributos da Ferrari>
<métodos da Ferrari>
<métodos redefinidos de Carro>
<métodos da interface Taxavel> }
Leonardo Murta OO 35
![Page 36: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/36.jpg)
Pacotes
• UAlizadosparaagregarclassesrelacionadas package br.uff.ic;
public class Pessoa {
...
}
Leonardo Murta OO 36
![Page 37: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/37.jpg)
Leonardo Murta OO 37
Pacotes• Modificadorespermitemquedeterminadasclasses
sejamvisíveisapenasparaoutrasclassesdomesmopacote
![Page 38: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/38.jpg)
Pacotes• Semprequeforusarumaclassedeoutropacote,énecessárioimportar
package br.uff.ic;
import java.util.List;
public class Pessoa {
... }
Leonardo Murta OO 38
![Page 39: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/39.jpg)
Modificadordevisibilidade• Indicaquempodeacessarométodo(ouatributo):
– Omodificadorprivateindicaqueométodopodeserchamadoapenasporoutrosmétodosdaprópriaclasse
– Aausênciademodificadoréconhecidacomopackage,eindicaqueométodopodeserchamadosomenteporclassesdomesmopacote
– Omodificadorprotectedindicaqueométodopodeserchamadosomenteporclassesdomesmopacoteousubclasses;
– Omodificadorpublicindicaqueométodopodeserchamadoporqualqueroutraclasse
Leonardo Murta OO 39
![Page 40: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/40.jpg)
Leonardo Murta OO 40
• Indicaaquempertenceométodo(ouatributo)– Aoobjeto(instância)– Àclassecomoumtodo
• MétodosestáAcos(sta7c)pertencemàclassecomoumtodo– Podemserchamadosdiretamentenaclasse,semanecessidadedeinstanciarobjetos
– SópodemmanipularatributosestáAcos
Modificadordeescopo
![Page 41: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/41.jpg)
Relacionamentoentreclasses• OutrasclassespodemseruAlizadascomoAposdosatributosdeumadeterminadaclasse
• Nestecaso,oatributorepresentaumarelaçãoentreasduasclasses
• Odesenvolvedordevedefiniravisibilidadedarelação,ouseja,quaisclassesconhecemarelação
Leonardo Murta OO 41
![Page 42: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/42.jpg)
Objetoscomoatributosclass A {
private B b; …
} class B {
private A a; …
}
Classe A
Classe B
Leonardo Murta OO 42
![Page 43: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/43.jpg)
Polimorfismo• Umasubclassepoderedefinirummétodoherdado– Estemecanismoéchamadodepolimorfismo– Opolimorfismoserealizaatravésdarecodificaçãodeumoumaismétodosherdadosporumasubclasse
– Emtempodeexecução,oJavasaberáqualimplementaçãodeveserusada
Leonardo Murta OO 43
![Page 44: Orientação a Objetos - UFFleomurta/courses/2015.2/es1/aula3.pdf · 2020-02-03 · Paradigma orientado a objetos (OO) • Classes de objetos – Agrupamento de procedimentos e variáveis](https://reader034.fdocumentos.tips/reader034/viewer/2022043010/5f9ffd1584c41b0f633177da/html5/thumbnails/44.jpg)
Exercício• FaçaumaclasseAnimalcom
ummétodoabstrato“fala”• FaçaasclassesHomem,Cãoe
Gato,herdandodeanimal,redefinindoométodo“fala”pararetornar“Oi”,“Auau”e“Miau”,respecAvamente
• Crieumvetorde10AnimaiseinstancieHomens,CãeseGatosnessevetor
• Façaumloopportodososanimaisdovetor,pedindoparaelesfalarem
Leonardo Murta OO 44
Animal
Homem Cão Gato