interação entre objetos criando objetos cooperadores 1.0

33
Interação entre objetos Criando objetos cooperadores 1.0

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Interação entre objetos Criando objetos cooperadores 1.0

Interação entre objetos

Criando objetos cooperadores

1.0

Page 2: Interação entre objetos Criando objetos cooperadores 1.0

2

Mostrador de um relógio digital

Projeto exemplo das aulas da semana

Page 3: Interação entre objetos Criando objetos cooperadores 1.0

3

Abstração

• Problema da complexidade– Dividir para conquistar

• Abstração é a habilidade de ignorar detalhes sobre as partes para concentrar a atenção no nível mais alto de um problema.

• Exemplo de um problema:– Engenheiros projetando um novo

carro

Page 4: Interação entre objetos Criando objetos cooperadores 1.0

4

Abstração em software

• Identificação de subcomponentes que podemos programar como entidades independentes.

• Em POO, esses componentes e subcomponentes são objetos.

Page 5: Interação entre objetos Criando objetos cooperadores 1.0

5

Modularização

• 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.

• A modularização e a abstração complementam-se reciprocamente.

Page 6: Interação entre objetos Criando objetos cooperadores 1.0

6

Modularização no exemplo do relógio

Um mostrador de número de quatro dígitos?

Ou um mostrador de número de dois dígitos?

Page 7: Interação entre objetos Criando objetos cooperadores 1.0

7

Modularização no exemplo do relógio

• Dois mostradores de dois dígitos cada um– Um par para horas e um par para os

minutos• Mostrador das horas:

– Inicia em 0 e volta para 0 quando alcança o limite (23)

• Mostrador de minutos– Inicia em 0 e retorna quando

alcança 59

Page 8: Interação entre objetos Criando objetos cooperadores 1.0

8

Mostrador de dois dígitos

Classe NumberDisplay

Page 9: Interação entre objetos Criando objetos cooperadores 1.0

9

Implementação — NumberDisplay

public class NumberDisplay{ private int limit; private int value;

Construtor e métodos omitidos.}

Page 10: Interação entre objetos Criando objetos cooperadores 1.0

10

Implementação — ClockDisplay

public class ClockDisplay{ private NumberDisplay hours; private NumberDisplay minutes;

Construtor e métodos omitidos.}

Page 11: Interação entre objetos Criando objetos cooperadores 1.0

11

Diagrama de objetos

Visualização dinâmica

Page 12: Interação entre objetos Criando objetos cooperadores 1.0

12

Diagrama de classes

Visualização estática

Page 13: Interação entre objetos Criando objetos cooperadores 1.0

13

Tipos primitivos versus tipos de objeto (1)

32

Tipo de objeto

tipo primitivo

SomeObject obj;

int i;

Page 14: Interação entre objetos Criando objetos cooperadores 1.0

14

Tipos primitivos versus tipos de objetos (2)

32

SomeObject a;

int a;

SomeObject b;

32

int b;

b = a;

Page 15: Interação entre objetos Criando objetos cooperadores 1.0

15

Código-fonte: NumberDisplay (1)

public NumberDisplay(int rollOverLimit){ limit = rollOverLimit; value = 0;}

public void increment(){ value = (value + 1) % limit;}

Page 16: Interação entre objetos Criando objetos cooperadores 1.0

16

Operador de módulo

• Operador de módulo (%) calcula o resto de uma divisão de inteiros

• O resultado da expressão (27 % 4) seria 3

Page 17: Interação entre objetos Criando objetos cooperadores 1.0

17

Código-fonte: NumberDisplay (2)

public String getDisplayValue(){ if(value < 10) return "0" + value; else return "" + value;}

Page 18: Interação entre objetos Criando objetos cooperadores 1.0

18

Concatenação de string

• + é o operador de concatenação de string em Java

• Exemplos:• “POO” + “com Java” -> “POOcom Java”• “Resposta: “ + 42 -> “Resposta: 42”• return “0” + value;• return “” + value;

Page 19: Interação entre objetos Criando objetos cooperadores 1.0

19

Objetos criando objetos (1)public class ClockDisplay

{ private NumberDisplay hours; private NumberDisplay minutes; private String displayString; public ClockDisplay() { hours = new NumberDisplay(24); minutes = new NumberDisplay(60); updateDisplay(); }}

Page 20: Interação entre objetos Criando objetos cooperadores 1.0

20

Chamadas de método

public void timeTick(){ minutes.increment(); if(minutes.getValue() == 0) { // acaba de voltar a zero! hours.increment(); } updateDisplay();}

Page 21: Interação entre objetos Criando objetos cooperadores 1.0

21

Método interno

/** * Atualiza a string interna que * representa o mostrador. */private void updateDisplay(){ displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue();}

Page 22: Interação entre objetos Criando objetos cooperadores 1.0

22

Diagrama do objeto ClockDisplay

Page 23: Interação entre objetos Criando objetos cooperadores 1.0

23

Objetos criando objetos (2)

hours = new NumberDisplay(24);

public NumberDisplay(int rollOverLimit);

Na classe ClockDisplay:

Na classe NumberDisplay:

parâmetro formal

parâmetro real

Page 24: Interação entre objetos Criando objetos cooperadores 1.0

24

Múltiplos construtores

• Uma classe pode conter mais de um construtor ou mais de um método com o mesmo nome.

• Os métodos têm que ter um conjunto distinto de tipos de parâmetros.

• new ClockDisplay();

• new ClockDisplay(hora, minuto);

Page 25: Interação entre objetos Criando objetos cooperadores 1.0

25

Chamadas de método (1)

Chamada de método externo

objeto.nomeDoMetodo( lista-de-parâmetros );

Chamada de metodo interno

nomeDoMétodo ( lista-de-parâmetros );

Page 26: Interação entre objetos Criando objetos cooperadores 1.0

26

Chamadas de método (2)

• Chamadas de método internoupdateDisplay();

private void updateDisplay()

Chamadas de método externo minutes.increment();

Page 27: Interação entre objetos Criando objetos cooperadores 1.0

27

A palavra-chave this

Sobrecarga de nome ocorre quando um mesmo nome é utilizado para duas entidades diferentes

Por exemplo, campos e parâmetros de entrada com o mesmo nome

Um parâmetro e um campo que compartilham um nome não é um problema em Java

A palavra-chave this é utilizada para fazer a distinção

A expressão this referencia o objeto atual

Page 28: Interação entre objetos Criando objetos cooperadores 1.0

28

A palavra-chave this

public NumberDisplay(int limit){ this.limit = limit; value = 0;}

// outros métodos

Page 29: Interação entre objetos Criando objetos cooperadores 1.0

29

A palavra-chave this

public class Aquecedor {private int temperatura,max,min,incr;public Aquecedor(int max, int min) {

this.max = max;this.min = min;incr = 5;temperatura = 15;

} // outros métodos

Page 30: Interação entre objetos Criando objetos cooperadores 1.0

30

Resumo dos conceitos (1)

• abstração Abstração é a capacidade de ignorar detalhes de partes para focalizar a atenção em um nível mais elevado de um problema.

• modularização A modularização é o processo de dividir um todo em partes bem definidas, que podem ser construídas e examinadas separadamente e que interagem de maneiras bem definidas.

• classes definem tipos Um nome de classe pode ser utilizado como o tipo para uma variável. Variáveis que têm uma classe como seu tipo podem referenciar objetos dessa classe

Page 31: Interação entre objetos Criando objetos cooperadores 1.0

31

Resumo dos conceitos (2)

• diagrama de classes O diagrama de classes mostra as classes de uma aplicação e os relacionamentos entre elas.

• diagrama de objetos O diagrama de objetos mostra os objetos e seus relacionamentos em tempo de execução.

• referências de objeto Variáveis do tipo objeto armazenam referências para objetos.

• criação de objetos Os objetos podem criar outros objetos utilizando o operador new.

Page 32: Interação entre objetos Criando objetos cooperadores 1.0

32

Resumo dos conceitos (3)

• tipo primitivo Os tipos primitivos em Java são os tipos não-objeto. Os mais comuns são int, char, boolean, double e long.

• sobrecarga Uma classe pode conter mais de um construtor ou mais de um método com mesmo nome, contanto que cada um tenha um conjunto distinto de tipos de parâmetro.

Page 33: Interação entre objetos Criando objetos cooperadores 1.0

33

Resumo dos conceitos (4)

• chamada de método interno Os métodos podem chamar outros métodos da mesma classe como parte de sua implementação.

• chamada de método externo Os métodos podem chamar métodos de outros objetos utilizando notação de ponto.