A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Interação entre objetos

Apresentações semelhantes


Apresentação em tema: "Interação entre objetos"— Transcrição da apresentação:

1 Interação entre objetos
Criando objetos cooperadores 1.0

2 Mostrador de um relógio digital
Projeto exemplo das aulas da semana

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

4 Abstração em software Identificação de subcomponentes que podemos programar como entidades independentes. Em POO, esses componentes e subcomponentes são objetos.

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.

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?

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

8 Mostrador de dois dígitos
Classe NumberDisplay

9 Implementação — NumberDisplay
public class NumberDisplay { private int limit; private int value; Construtor e métodos omitidos. }

10 Implementação — ClockDisplay
public class ClockDisplay { private NumberDisplay hours; private NumberDisplay minutes; Construtor e métodos omitidos. }

11 Diagrama de objetos Visualização dinâmica

12 Diagrama de classes Visualização estática

13 Tipos primitivos versus tipos de objeto (1)
SomeObject obj; Tipo de objeto int i; tipo primitivo 32

14 Tipos primitivos versus tipos de objetos (2)
SomeObject a; SomeObject b; b = a; int a; int b; 32 32

15 Código-fonte: NumberDisplay (1)
public NumberDisplay(int rollOverLimit) { limit = rollOverLimit; value = 0; } public void increment() value = (value + 1) % limit;

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

17 Código-fonte: NumberDisplay (2)
public String getDisplayValue() { if(value < 10) return "0" + value; else return "" + value; }

18 Concatenação de string
+ é o operador de concatenação de string em Java Exemplos: “POO” + “com Java” -> “POOcom Java” “Resposta: “ > “Resposta: 42” return “0” + value; return “” + value;

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(); }

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

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

22 Diagrama do objeto ClockDisplay

23 Objetos criando objetos (2)
Na classe NumberDisplay: public NumberDisplay(int rollOverLimit); parâmetro formal Na classe ClockDisplay: hours = new NumberDisplay(24); parâmetro real

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);

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 );

26 Chamadas de método (2) Chamadas de método interno updateDisplay();
private void updateDisplay() Chamadas de método externo minutes.increment();

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

28 A palavra-chave this public NumberDisplay(int limit) {
this.limit = limit; value = 0; } // outros métodos

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

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

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.

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.

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.


Carregar ppt "Interação entre objetos"

Apresentações semelhantes


Anúncios Google