Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br) INTERAÇÃO ENTRE OBJETOS Lincoln Souza Rocha (POO - 2011.2) 2 Conceitos Abordados • Abstração • Modularização • Criação de Objeto • Diagramas de Objeto • Chamadas de Método • Depuradores Lincoln Souza Rocha (POO - 2011.2) 3 Índice • Relógio Digital • Abstração e Modualrização • Modularização no Exemplo do Relógio • Implementando o Display do Relógio • Diagrama de Classes versus de Objetos • Tipos Primitivos e Tipos Objetos • Código Fonte: NumberDisplay • Objetos que criam Objetos • Múltiplos Construtores • Chamadas de Método Lincoln Souza Rocha (POO - 2011.2) 4 Relógio Digital Lincoln Souza Rocha (POO - 2011.2) 5 Abstração e Modularização • Abstração é a habilidade de ignorar detalhes sobre as partes para concentrar a atenção no nível mais alto de um problema • Modularização é o processo de dividir um todo em partes bem definidas, que podem ser construídas e examinadas separadamente e que interagem de uma maneira bem definida Lincoln Souza Rocha (POO - 2011.2) 6 Modularização no Relógio Lincoln Souza Rocha (POO - 2011.2) 7 Um mostrador de número de quatro dígitos? Ou um mostrador de número de dois dígitos? Implementando o Display do Relógio: classe NumberDisplay Lincoln Souza Rocha (POO - 2011.2) 8 public class NumberDisplay{ private int limit; private int value; Construtor e métodos omitidos. } Implementando o Display do Relógio: classe ClockDisplay Lincoln Souza Rocha (POO - 2011.2) 9 public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; Construtor e métodos omitidos. } Diagrama de Objeto do ClockDisplay Lincoln Souza Rocha (POO - 2011.2) 10 Diagrama de Classes do ClockDisplay Lincoln Souza Rocha (POO - 2011.2) 11 Tipos Primitivos e Tipos Objetos Lincoln Souza Rocha (POO - 2011.2) 12 32 Tipo Objeto Tipo Primitivo AlgumObjeto obj; int i; Tipos Primitivos e Tipos Objetos Lincoln Souza Rocha (POO - 2011.2) 13 32 AlgumObjeto a; int a; AlgumObjeto b; 32 int b; b = a; Código Fonte: NumberDisplay Lincoln Souza Rocha (POO - 2011.2) 14 public NumberDisplay(int rollOverLimit){ limit = rollOverLimit; value = 0; } public void increment(){ value = (value + 1) % limit; } Código Fonte: NumberDisplay Lincoln Souza Rocha (POO - 2011.2) 15 public String getDisplayValue(){ if(value < 10) return "0" + value; else return "" + value; } Objetos Criando Objetos Lincoln Souza Rocha (POO - 2011.2) 16 public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; private String displayString; public ClockDisplay() { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); } } Objetos Criando Objetos • Na classe NumberDisplay • Na classe ClockDisplay Lincoln Souza Rocha (POO - 2011.2) 17 public NumberDisplay(int rollOverLimit); Parâmetro Formal hours = new NumberDisplay(24); Parâmetro Real Múltiplos Construtores Lincoln Souza Rocha (POO - 2011.2) 18 new ClockDisplay(); new ClockDisplay(hour, minute); • Sobrecarga – Uma classe pode conter mais de um construtor ou mais de um método com o mesmo nome. Porém eles devem possuir uma assinatura diferente Chamadas de Método Lincoln Souza Rocha (POO - 2011.2) 19 public void timeTick() { minutes.increment(); if(minutes.getValue() == 0) { // acaba de voltar a zero! hours.increment(); } updateDisplay(); } Método externo Método interno Forma padrão: objeto.nomeDoMétodo( lista-de-parâmetros ) Depurador Lincoln Souza Rocha (POO - 2011.2) 20 Depurador Lincoln Souza Rocha (POO - 2011.2) 21 Depurador Lincoln Souza Rocha (POO - 2011.2) 22 Programação Orientada a Objetos (Cód. ES006 / Sem. 2011-2 ) Universidade Federal do Ceará – UFC Campus de Quixadá Engenharia de Software Prof. Lincoln Souza Rocha (lincolnrocha@ufc.br)