1ProgramaProgramaçção IIão IIProfº Alcides Xavier Benicasaalcides@ufs.brUniversidade Federal de SergipeDepartamento de S...
2UFS – Programação II / 3 de 53RoteiroConceitos Fundamentais de Programação Orientada a ObjetosRoteiroConceitos Fundamenta...
3UFS – Programação II / 5 de 53O que são Modelos?O que são Modelos?Modelos são representações simplificadas de:ObjetosPes...
4UFS – Programação II / 7 de 53Modelo - Restaurante Caseiro HipotéticoModelo - Restaurante Caseiro HipotéticoModeloRestau...
5ClassesProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 10 de 53Programação Orientada...
6UFS – Programação II / 11 de 53Programação Orientada a ObjetosProgramação Orientada a Objetos Um programa orientado a ob...
7UFS – Programação II / 13 de 53Programação Orientação a ObjetosProgramação Orientação a ObjetosMundo realMundoMundo realr...
8UFS – Programação II / 15 de 53Programação Orientação a ObjetosProgramação Orientação a ObjetosPessoas Livro AutomóvelTan...
9UFS – Programação II / 17 de 53ClassesClassesVeículosPassageirosEsporte PasseioUtilitárioEspecializaçãoGeneralizaçãoObjet...
10UFS – Programação II / 19 de 53Classe e ObjetoClasse e Objeto Um objeto pode ser descrito por umconjunto de atributos e...
11UFS – Programação II / 21 de 53Estrutura de uma Classe em JAVAEstrutura de uma Classe em JAVACIRCULORaioXypublic class C...
12UFS – Programação II / 23 de 53CRIAÇÃO DE OBJETOS (instanciação)CRIAÇÃO DE OBJETOS (instanciação) Um objeto de uma clas...
13Estrutura de uma Classe / Campos / ConstrutoresProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Progr...
14UFS – Programação II / 27 de 53CamposCampos Campos armazenamvalores para um objeto. Eles também sãoconhecidos comovari...
15UFS – Programação II / 29 de 53ConstrutoresConstrutores Construtores inicializamum objeto. Eles têm o mesmonome das su...
16MétodosProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 32 de 53Métodos de AcessoMét...
17UFS – Programação II / 33 de 53Métodos de AcessoMétodos de Acessopublic String getEstado(){return estado;}Tipo de Retorn...
18UFS – Programação II / 35 de 53Métodos ModificadoresMétodos Modificadorespublic void setEstado(String nEstado){{estado =...
19UFS – Programação II / 37 de 53Chamadas de métodoChamadas de métodoChamadas de método internoOs métodos podem chamar ou...
20Campos / Parâmetros / Variáveis LocaisProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II...
21UFS – Programação II / 41 de 53Variáveis LocaisVariáveis LocaisVariável declarada e utilizada dentro de um únicométodo....
22UFS – Programação II / 43 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis Locais...
23UFS – Programação II / 45 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis Locais...
24UFS – Programação II / 47 de 53EXEMPLO – Circulo.javaEXEMPLO – Circulo.javapublic class Circulo {public float raio; //at...
25UFS – Programação II / 49 de 53EXEMPLO – Principal.javaEXEMPLO – Principal.javaclass Circulo {public float raio; //atrib...
26UFS – Programação II / 51 de 53EXERCÍCIOSEXERCÍCIOS4. Seguindo a abstração de que as pessoas possuem as característicasn...
27UFS – Programação II / 53 de 53Bibliografia ComplementarBibliografia ComplementarBARNES, D.J.; KÖLLING, M. Programação ...
Próximos SlideShares
Carregando em…5
×

Progii na02

235 visualizações

Publicada em

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
235
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Progii na02

  1. 1. 1ProgramaProgramaçção IIão IIProfº Alcides Xavier Benicasaalcides@ufs.brUniversidade Federal de SergipeDepartamento de Sistemas de Informação / ItabaianaPágina inicial do grupo: http://groups.google.com.br/group/ufs-nsi-progiiEndereço de e-mail do grupo: ufs-nsi-progii@googlegroups.comPágina do Professor: https://sites.google.com/site/ufsprofalcidesbenicasaUFS – Programação II / 2 de 53Unidades de EnsinoIntrodução à Programação Orientada a ObjetosUnidades de EnsinoIntrodução à Programação Orientada a Objetos I - IntroduçãoConceitos Fundamentais de ProgramaçãoOrientada a ObjetosModelosClassesObjetosEstrutura de uma Classe
  2. 2. 2UFS – Programação II / 3 de 53RoteiroConceitos Fundamentais de Programação Orientada a ObjetosRoteiroConceitos Fundamentais de Programação Orientada a ObjetosModelosClassesObjetosEstrutura de uma Classe• Campos / Construtores• Métodos• Campos / Parâmetros / Variáveis LocaisModelos“Eu não aceitaria participar denenhum clube que me aceitassecomo membro”.Groucho Marx,The Groucho Letterapud Savitch.ProgramaProgramaçção Orientada a Objetosão Orientada a Objetos
  3. 3. 3UFS – Programação II / 5 de 53O que são Modelos?O que são Modelos?Modelos são representações simplificadas de:ObjetosPessoasItensTarefasProcessosConceitosidéias, etc.Usados comumente por pessoas no seu dia-a-dia,independentemente de uso de computadoresUFS – Programação II / 6 de 53Modelo - Restaurante Caseiro HipotéticoModelo - Restaurante Caseiro HipotéticoMesa 1CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoMesa 2CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoMesa 3CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoMesa 4CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoMesa 5CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoMesa 6CervejaRefrig. LataRefrig. 600mlRefrig. 2lt.SobremesaKg refeiçãoDados, informações relevantesOperações ou procedimentos
  4. 4. 4UFS – Programação II / 7 de 53Modelo - Restaurante Caseiro HipotéticoModelo - Restaurante Caseiro HipotéticoModeloRestaurante CaseiroDadosquantidadeDoItem, etc.OperaçõesadicionaItemapresentaContaUFS – Programação II / 8 de 53Modelo: PessoaModelo: PessoaPessoa como Empregado de EmpresaDADOS: nome, cargo, salário e horasTrabalhadas.OP: calculaSalário e aumentaSalario.Pessoa como Paciente de uma Clínica MédicaDADOS: nome, sexo, idade, altura, peso ehistoricoConsulta.OP: verificaObesidade e adicionaInformaçãoHistórico.Pessoa como Contato ComercialDADOS: nome, telefone, cargo e empresa.OP: mostraTelefone e trabalhaEmEmpresa.
  5. 5. 5ClassesProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 10 de 53Programação Orientada a ObjetosProgramação Orientada a Objetos Paradigma de programação de computadores onde se usamclasses e objetos, criados a partir dos modelos descritosanteriormente, para representar e processar dados usandoprogramas de computadores.Dados• Representados por tipos de dados característicos da linguagem deprogramação, podendo também ser representados por outrosmodelos.Operações• Representadas pelo processamento dos dados.
  6. 6. 6UFS – Programação II / 11 de 53Programação Orientada a ObjetosProgramação Orientada a Objetos Um programa orientado a objetos é estruturado como umacomunidade de objetos que interagem entre si. Cada objeto tem um papel a cumprir. Cada objeto oferece um serviço ou realiza uma ação que éusada por outros membros da comunidade. Ex.: um computador e seus componentes (teclado, mouse,vídeo, cpu, etc.)UFS – Programação II / 12 de 53Programação Orientação a ObjetosProgramação Orientação a ObjetosClasseClasseObjetoObjetoMensageminstância ou exemplarinstância ou exemplartipo ou moldetipo ou moldecomunicacomunicaçção entre objetosão entre objetos
  7. 7. 7UFS – Programação II / 13 de 53Programação Orientação a ObjetosProgramação Orientação a ObjetosMundo realMundoMundo realrealModeloModeloModeloCasaCasaCasaElenElenElenAutomóvelAutomAutomóóvelvelMaçãsMaMaççãsãsCasaCasaCasaElenElenElenAutomóvelAutomAutomóóvelvelMaçãsMaMaççãsãsmora namoramora nanadirigedirigedirigecomecomecomeUFS – Programação II / 14 de 53Programação Orientação a ObjetosProgramação Orientação a Objetosoperaoperaççõesõesestrutura de dadosestrutura de dadosobjetoobjeto
  8. 8. 8UFS – Programação II / 15 de 53Programação Orientação a ObjetosProgramação Orientação a ObjetosPessoas Livro AutomóvelTangíveisIncidenteCompetiçãoTransaçãoInteraçãoProjeto ConsertoSaque VendaUFS – Programação II / 16 de 53ClassesClassesUma classe é uma “fôrmafôrma” para produzirobjetos.Determina um conjunto de objetos com:propriedades semelhantescomportamentos semelhantesrelacionamentos comuns com outrosrelacionamentos comuns com outrosobjetosobjetos..
  9. 9. 9UFS – Programação II / 17 de 53ClassesClassesVeículosPassageirosEsporte PasseioUtilitárioEspecializaçãoGeneralizaçãoObjetosProgramaProgramaçção Orientada a Objetosão Orientada a Objetos
  10. 10. 10UFS – Programação II / 19 de 53Classe e ObjetoClasse e Objeto Um objeto pode ser descrito por umconjunto de atributos e comportamentos Um objeto pode ser descrito por umconjunto de atributos e comportamentosATRIBUTOSATRIBUTOSMotorCorPotênciaRodasCOMPORTAMENTOSCOMPORTAMENTOSAvançarRetrocederPararAbastecerUFS – Programação II / 20 de 53Objeto: exemploObjeto: exemplo Um carro possui características (motor,cor,etc.) e comportamento (avançando,retrocedendo, etc.). Um carro possui características (motor,cor,etc.) e comportamento (avançando,retrocedendo, etc.).ATRIBUTOSATRIBUTOS5.1VermelhaCOMPORTAMENTOSCOMPORTAMENTOSAbastecendo
  11. 11. 11UFS – Programação II / 21 de 53Estrutura de uma Classe em JAVAEstrutura de uma Classe em JAVACIRCULORaioXypublic class Circulo{public float raio;public float x;public float y;}UFS – Programação II / 22 de 53Tempo de ExecuçãoTempo de ExecuçãoCLASSE = “Molde de Objetos”CLASSE = “Molde de Objetos”Tempo deCompilaçãoCLASSECIRCULOTempo deCompilaçãoCLASSECIRCULO
  12. 12. 12UFS – Programação II / 23 de 53CRIAÇÃO DE OBJETOS (instanciação)CRIAÇÃO DE OBJETOS (instanciação) Um objeto de uma classe é criadoutilizando-se a palavra new. Um objeto de uma classe é criadoutilizando-se a palavra new.UFS – Programação II / 24 de 53Dois objetos circleDois objetos circleé instância de...é instância de...
  13. 13. 13Estrutura de uma Classe / Campos / ConstrutoresProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 26 de 53Estrutura de uma classe básicaEstrutura de uma classe básicapublic class NomeDaClasse{CamposConstrutoresMétodos}O conteúdo de uma classe
  14. 14. 14UFS – Programação II / 27 de 53CamposCampos Campos armazenamvalores para um objeto. Eles também sãoconhecidos comovariáveis de instâncias. Campos definem oestado de um objeto. São definidos fora dosmétodospublic class Lampada{private String estado;private int nVidaUtil;//construtor e métodos omitidos}private String estado;;Nome davariávelModificador deVisibilidadeTipoUFS – Programação II / 28 de 53AtribuiçãoAtribuiçãoValores são armazenados em campos (e outrasvariáveis) via instruções de atribuição:variável = expressão;•estado = NovoEstado;•nVidaUtil++;Uma variável armazena um único valor,portanto, qualquer valor anterior é perdido.
  15. 15. 15UFS – Programação II / 29 de 53ConstrutoresConstrutores Construtores inicializamum objeto. Eles têm o mesmonome das suas classes. Eles armazenamvalores iniciais noscampos. Eles freqüentementerecebem valores deparâmetros externosnesses campos.public class Lampada{private String estado;private int nVidaUtil;public Lampada(){estado = "desligada";}public Lampada(String NovoEstado){estado = NovoEstado;}//métodos omitidos}UFS – Programação II / 30 de 53Transmitindo dados via parâmetrosTransmitindo dados via parâmetrosCONSTRUTORpublic Lampada(String NovoEstado){estado = NovoEstado;}Lampada lampada1 = new Lampada(“ligada”);
  16. 16. 16MétodosProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 32 de 53Métodos de AcessoMétodos de Acesso Métodos implementam o comportamento dos objetos. Métodos de acesso fornecem informações sobre um objeto. Métodos têm uma estrutura que consiste em um cabeçalho e umcorpo. O cabeçalho define a assinatura do método.public String getEstado() O corpo engloba as instruções do método.
  17. 17. 17UFS – Programação II / 33 de 53Métodos de AcessoMétodos de Acessopublic String getEstado(){return estado;}Tipo de RetornoNome do Método Lista deParâmetros(vazia)Início e Fim do corpo do Método (bloco)Instrução deRetornoModificador deVisibilidadeUFS – Programação II / 34 de 53Métodos ModificadoresMétodos ModificadoresEles têm uma estrutura de método semelhante:cabeçalho e corpo.Muito utilizado para modificar o estado de um objeto.Alcançados por meio da modificação do valor de umou mais campos.Geralmente contêm instruções de atribuição.Geralmente recebem parâmetros.
  18. 18. 18UFS – Programação II / 35 de 53Métodos ModificadoresMétodos Modificadorespublic void setEstado(String nEstado){{estado = nEstado;}Tipo de Retorno(void)Nome do MétodoParâmetro(s)Campo sendoAlteradoModificador deVisibilidadeUFS – Programação II / 36 de 53MétodosMétodos Nome do Métodoé um Identificador válido da linguagem; Parâmetroslista de argumentos que serão passados como parâmetros para o método. Asintaxe dos argumentos é a de declaração de variáveis; Tipo de Retornoindica o tipo do valor retornado pelo método; returnpalavra reservada que indica o valor que será devolvido para o programa; Modificadoreselementos que caracterizam o método quanto à visibilidade (escopo)
  19. 19. 19UFS – Programação II / 37 de 53Chamadas de métodoChamadas de métodoChamadas de método internoOs métodos podem chamar outros métodos damesma classe como parte de sua implementação.Isso é denominado chamada de método interno.public void economizaEnergia(){Apagar();}public void Apagar(){estado = "desligada";}UFS – Programação II / 38 de 53Chamadas de métodoChamadas de métodoChamadas de método externoOs métodos podem chamar métodos de outros objetosutilizando a notação de ponto. Isso é denominado chamada demétodo externo.A sintaxe de uma chamada de método externo é• objeto.nomeDoMétodo(listadeparâmetros)class Lampada_Principal{public static void main(String args[]){Lampada L1 = new Lampada("ligada");System.out.print("nLampada 1 Estado ("+ L1.getEstado() +")");L1.economizaEnergia();System.out.print("nLampada 1 Estado ("+ L1.getEstado() +")");}}
  20. 20. 20Campos / Parâmetros / Variáveis LocaisProgramaProgramaçção Orientada a Objetosão Orientada a ObjetosUFS – Programação II / 40 de 53VariáveisVariáveisCampos são um tipo de variávelarmazenam valores por toda a vida de um objeto; esão acessíveis por meio da classe.porém são definidos fora dos métodosMétodos podem incluir variáveis de vida mais curtaexistem apenas enquanto o método está em execuçãosão acessíveis de dentro do métodoSão definidas dentro de um métodopublic class Lampada{private String estado;private int nVidaUtil;//construtor e métodos omitidos}
  21. 21. 21UFS – Programação II / 41 de 53Variáveis LocaisVariáveis LocaisVariável declarada e utilizada dentro de um únicométodo.Seu tempo de vida está limitado ao método.public int ReiniciaVidaUtil(){int nVidaUtilUtilizada = nVidaUtil;nVidaUtil = 0;return nVidaUtilUtilizada;}UFS – Programação II / 42 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis LocaisConsideraçõesTodos os três tipo são capazes dearmazenas um valor que é apropriado paraseu tipo definido.
  22. 22. 22UFS – Programação II / 43 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis LocaisConsideraçõesCamposSão definidos fora dos construtores e métodos.Utilizados para armazenar dados que persistem por toda a vidade um objeto.Têm escopo de classe: sua acessibilidade se estende por todaa classe e podem ser utilizadas em quaisquer dos construtoresou métodos da classe em que eles estão definidos.Enquanto forem definidos como private, não podem seracessados de fora de sua classe definidora.UFS – Programação II / 44 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis LocaisConsideraçõesParâmetrosPersistem somente durante o período em que um construtor oumétodo executa.Atuam como posições temporárias, em vez de permanentes, damemória.São definidos no cabeçalho de um construtor ou método.Recebem seus valores fora, sendo inicializados pelos valoresreais de parâmetros.Escopo é limitado a seu construtor ou ao seu método definidor.
  23. 23. 23UFS – Programação II / 45 de 53Campos / Parâmetros e Variáveis LocaisConsideraçõesCampos / Parâmetros e Variáveis LocaisConsideraçõesVariáveis LocaisDefinidas dentro do corpo de um construtor ou método.Podem ser inicializadas e utilizadas somente dentro do corpode seu construtor ou método definidor.Devem ser inicializadas antes de serem utilizadas em umexpressão – elas não recebem um valor-padrão.Têm escopo que é limitado no bloco em que elas são definidas.Não são acessíveis em nenhum lugar fora desse bloco.Outro Exemplo...
  24. 24. 24UFS – Programação II / 47 de 53EXEMPLO – Circulo.javaEXEMPLO – Circulo.javapublic class Circulo {public float raio; //atributo raio do círculopublic float x; //posições em coordenadas cartesianaspublic float y;}UFS – Programação II / 48 de 53EXEMPLO – Principal.javaEXEMPLO – Principal.javapublic class Principal {public static void main(String args[]) {Circulo umcirc;umcirc= new Circulo(); //alocação dessa variávelSystem.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");umcirc.x=umcirc.x+17;System.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");}}public class Principal {public static void main(String args[]) {Circulo umcirc;umcirc= new Circulo(); //alocação dessa variávelSystem.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");umcirc.x=umcirc.x+17;System.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");}}
  25. 25. 25UFS – Programação II / 49 de 53EXEMPLO – Principal.javaEXEMPLO – Principal.javaclass Circulo {public float raio; //atributo raio do círculopublic float x; //posições em coordenadas cartesianaspublic float y;}public class Principal {public static void main(String args[]) {Circulo umcirc;umcirc= new Circulo(); //alocação dessa variávelSystem.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");umcirc.x=umcirc.x+17;System.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");}}class Circulo {public float raio; //atributo raio do círculopublic float x; //posições em coordenadas cartesianaspublic float y;}public class Principal {public static void main(String args[]) {Circulo umcirc;umcirc= new Circulo(); //alocação dessa variávelSystem.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");umcirc.x=umcirc.x+17;System.out.println( "("+ umcirc.x +","+ umcirc.y +","+ umcirc.raio +") ");}}UFS – Programação II / 50 de 53EXERCÍCIOSEXERCÍCIOS1. Repita o mesmo exemplo só que agora mova o círculo alterando ascomponentes x e y. Coloque o círculo na posição (1.0,1.0), através deatribuições do tipo acirc.x=1.0; . Acompanhe todas as modificações doobjeto imprimindo seus atributos na tela.2. Simplifique o programa anterior retirando o atributo raio. Você podedar o nome de Ponto ou Ponto_geometrico para esta classe. Não seesqueça de compilar, use o compilador como ferramenta para verificarse você aprendeu corretamente a sintaxe da linguagem.3. Reescreva a classe Circulo para trabalhar com atributos do tipo int.1. Repita o mesmo exemplo só que agora mova o círculo alterando ascomponentes x e y. Coloque o círculo na posição (1.0,1.0), através deatribuições do tipo acirc.x=1.0; . Acompanhe todas as modificações doobjeto imprimindo seus atributos na tela.2. Simplifique o programa anterior retirando o atributo raio. Você podedar o nome de Ponto ou Ponto_geometrico para esta classe. Não seesqueça de compilar, use o compilador como ferramenta para verificarse você aprendeu corretamente a sintaxe da linguagem.3. Reescreva a classe Circulo para trabalhar com atributos do tipo int.
  26. 26. 26UFS – Programação II / 51 de 53EXERCÍCIOSEXERCÍCIOS4. Seguindo a abstração de que as pessoas possuem as característicasnome, endereço, telefone e idade, defina em Java a classe eatributos necessários para a instanciação de duas pessoas.4. Seguindo a abstração de que as pessoas possuem as característicasnome, endereço, telefone e idade, defina em Java a classe eatributos necessários para a instanciação de duas pessoas.UFS – Programação II / 52 de 53Bibliografia BásicaBibliografia BásicaDEITEL E DEITEL. Java: como programar. MakronBooks. 2ª. Edição.
  27. 27. 27UFS – Programação II / 53 de 53Bibliografia ComplementarBibliografia ComplementarBARNES, D.J.; KÖLLING, M. Programação orientada aobjetos com Java: Uma Introdução Prática Utilizando oBlue J. São Paulo: Editora Pearson, 2004.PUGA, Sandra; RISSETI, Gerson. Lógica deProgramação e Estrutura de Dados, com aplicaçõesJava. São Paulo: Pearson Prentice Hall, 2003.SANTOS, Rafael. Introdução à Programação Orientadaa Objetos usando Java. Rio de Janeiro: Elsevier, 2003.

×