Interação entre objetos

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Contadores e Registradores
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Introdução a Programação Orientada a Objetos
Projeto – Parte II - Exemplos de Diagrama de Colaboração
Programação Orientada a Objetos*
Métodos, Parâmetros, Argumentos e Contratos
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
03/08/2011 Professor Leomir J. Borba- –
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS MÉTODOS – UMA VISÃO MAIS APROFUNDADA Prof. Thiago Pereira Rique
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Orientação a Objetos: Encapsulamento e Classificação
Java: Pacotes e Modificadores de Visibilidade
Orientação a Objetos: Encapsulamento e Classificação
Introdução à Programação
Programação Básica em Java
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Arrays Profa. Isabel Harb Manssour (Material adaptado das aulas dos Profs.: Luciana Nedel, Júlio Machado e Bernardo Copstein) Arrays Exercícios.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
1 Professor Rogério B. de Andrade - Aula 001- Dez/2008 Técnicas e Linguagem de Programação.
Auditoria de Segurança da Informação
Integração entre objetos
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
1 Aula 7 ImplementandoSubprogramas Universidade do Vale do Rio dos Sinos
Capítulo 9 Herança 1.
Programação Baseada em Objectos Desenho de TAD
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Estrutura de decisão e repetição em JAVA
Herança P. O. O. Prof. Ângela e Grace.
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Técnica de Contagem.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Provas de Concursos Anteriores
Diagramas de Seqüência
DSC/CCT/UFCG Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel de Queiroz Roberto.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
GAPH Integração de Hardware do Usuário ao CoreConnect Leandro Heleno Möller e Leonel Pablo Tedesco Prototipação Rápida e Computação.
Estruturas de Dados com Jogos
Principais operações em Listas TPA Listas Simples Inserção no Final 1.void insereNofinalDaLista(Lista *l, Elemento e){ 2.Lista paux,p; 3. p.
Programação I Aula 2 (Métodos)
Entendendo as definições de classe
EXERCÍCIOS PARA GUARDA-REDES
7 Arrays.
Tipos Abstratos de Dados
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Os métodos equals() e hashCode()
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Rio Verde - Goiás - Brasil
Cinemática Plana de um Corpo Rígido Cap. 16
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
UML - Unified Modeling Language
Listas Simplesmente Encadeadas
Wagner Santos C. de Jesus
BC-0505 Processamento da Informação Santo André, Março de 2011 Professor: Carlos Alberto Kamienski -
GINÁSTICA LABORAL UM NOVO CAMINHO.
Contagem Sequencial do Estoque
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
INTERAÇÃO ENTRE OBJETOS Dilvan Moreira (baseado no livro Prog. Orientada a Objetos em Java)
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Transcrição da apresentação:

Interação entre objetos Criando objetos cooperadores 1.0

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

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

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

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.

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?

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

Mostrador de dois dígitos Classe NumberDisplay

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

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

Diagrama de objetos Visualização dinâmica

Diagrama de classes Visualização estática

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

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

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

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

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

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;

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

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

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

Diagrama do objeto ClockDisplay

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

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

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

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

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

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

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

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

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.

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.

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.