Computação II Orientação a Objetos

Documentos relacionados
Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II (MAB 225)

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II Orientação a Objetos

Computação II (MAB 225)

Computação II Orientação a Objetos

Linguagem de Programação III

Linguagens de Domínio Específico

Computação II (MAB 225)

Introdução à Programação C

Computação II Orientação a Objetos

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

Compiladores Ambiente de Execução

Computação II Orientação a Objetos

INSTRUÇÕES DE REPETIÇÃO

Agenda. O que é um array. Declaração de um array. Instanciação de um array. Acessando os elementos de um array. O tamanho de um array (length)

Linguagem de Programação III

Introdução à Programação C

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Arrays. int idade1; int idade2; int idade3; int idade4; int[] idades;

Estruturas de Controle em c#

Análise de Programação

Membros estáticos e Pacotes

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Instituto de Informática Estrutura de Dados II

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Compiladores Geração de Código

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Programação Java Aula 04

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Collections Framework

Programação Orientada a Objetos

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Linguagem de Programação Introdução a Orientação a Objetos

Compiladores Ambiente de Execução

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Compiladores Análise de Tipos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Programação Orientada a Objetos

CURSO DE POO COM JAVA

Capítulo 5. Nomes, Vinculações e Escopos

Classe Interna (Inner)

CI208 - Programação de Computadores. Aula 24: Arrays. Prof. MSc. Diego Roberto Antunes

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Classes e Objetos POO

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Computação II Orientação a Objetos

Arrays (Vetores) Arrays (Vetores) 28/04/ Índices. profs. } Ex1: Se eu preciso manipular 100 nomes de pessoas ao mesmo tempo... é melhor...

Aula 9 Matrizes Cleverton Hentz

Computação II Orientação a Objetos

Conceitos de Programação Orientada a Objetos

Técnicas de Programação II

Modelo do Mundo Real. Abstração. Interpretação

Computação II Orientação a Objetos

Algoritmos e Programação

Ponteiros de Variáveis

Compiladores Análise de Tipos

Conceitos de Programação Orientada a Objetos

Desenvolvimento de Aplicações Desktop

Notas de Aula 07: vetores de objetos e coleções

Coleções. João Paulo Q. dos Santos

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Java Standard Edition (JSE)

Compiladores Análise Semântica

Física Computacional 7 Classes

Programação OO em Java

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Capítulo 9. Subprogramas

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Modificadores de acesso e atributos de classe

Biblioteca Gráfica. Adriano Cruz. 28 de Abril de 2015

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Programação Orientada a Objetos JAVA - NETBEANS

Introdução à Computação

Aula 8 Vetores Cleverton Hentz

Programação Orientada a Objetos. Collections - Java

Computação II Orientação a Objetos

Tutorial C# - Nova temporada

C com introdução a OO

Compiladores Análise de Tipos

Classes e Objetos. Sintaxe de classe em Java

Compiladores Análise de Tipos

Programação Orientada a Objetos

Vetores. Marina Andretta. 11 de abril de 2016 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 11 de abril de / 20

Segundo trabalho prático de implementação Sistema de reserva de assentos

Fundamentos de Programação

DIAGRAMAS DE CLASSE UML

Construtores e Especificadores de Acesso

Paradigmas de Linguagens de Programação. Tipos de Dados Abstratos

Transcrição:

Computação II Orientação a Objetos Fabio Mascarenhas - 2016.1 http://www.dcc.ufrj.br/~fabiom/java

Breakout

Componentes do Breakout Bola Raquete Tijolos Paredes Score Nem todos vão precisar de classes próprias para representa-los!

Inicialização fora do construtor Às vezes queremos que todo campo de um objeto seja inicializado da mesma forma, independente do que foi passado para o construtor Podemos fazer a inicialização direto na declaração do campo: int tamanho = 30; Todo objeto criado vai começar com tamanho igual a 30, mas depois o valor de tamanho de cada um pode divergir

Inicialização fora do construtor, cont. A inicialização é feita sempre que um novo objeto for criado, então cada objeto pode receber um valor diferente: public Cor cor = new Cor(Math.random(), Math.random(), Math.random()); Cada objeto criado vai receber uma nova cor em que cada componente é determinado aleatoriamente É como se a inicialização estivesse sendo feita dentro de cada construtor da classe

Campos da classe (campos estáticos) E se queremos que todos os objetos de determinada classe tenham um campo que sempre vai ter o mesmo valor? Nesse caso, usamos um campo estático, declarado com a palavra-chave static static int tamanho = 30; Podemos acessar campos da classe por qualquer instância, ou diretamente pela classe Tijolo.largura, raquete.vx

Campos da classe, cont. Para a linguagem, não há diferença entre campos estáticos e variáveis globais; a diferença está no que elas representam Uma variável global está associada sintaticamente a uma classe, mas é um valor que não está ligado ao comportamento de suas instâncias Exemplos de cores pré-alocadas dentro da classe Cor Um campo da classe é um valor que afeta o comportamento de todas as instâncias da classe, e uma maneira de fazer elas compartilharem algum dado Tamanho dos tijolos e velocidade da raquete no breakout

Classes parametrizadas (classes genéricas) Várias classes da biblioteca padrão de Java têm parâmetros Por exemplo, todas as classes que representam coleções (listas, mapas, conjuntos) recebem um parâmetro que diz quais são os objetos que fazem parte da coleção Os parâmetros são outras classes, e aparecem entre <> HashSet<String>, ArrayList<Tijolo>, HashMap<String,Aluno> Depois veremos como definir nossas próprias classes parametrizadas

As classe HashSet e ArrayList Duas das coleções mais comuns usadas em programas Java são as classes HashSet e ArrayList Respectivamente elas representam conjuntos e listas de elementos, e são parametrizadas pelo tipo dos elementos que você quer guardar Use um conjunto se você não se importa com a ordem dos elementos, mas quer checar se um objeto pertence ao conjunto ou não, e não quer ter elementos duplicados Use uma lista se a ordem em que os elementos está importa, e você quer acessar um elemento pela posição dele na lista

Laço for de coleções Java tem uma versão do laço for que é especializada para percorrer uma coleção (um vetor, ou instâncias de uma das classes de coleção como HashSet e ArrayList) O bloco do laço é executado para cada elemento da coleção, com a variável de controle apontando para o elemento for(int i: vetor) { System.out.println(i); }

Coordenação Tanto no breakout como em outros jogos, precisamos verificar possíveis colisões entre os objetos do jogo, e tomar ações a depender de qual objeto colidiu com qual Ex: se a bola colide com um tijolo, o tijolo some e a bola é refletida Verificar uma interação envolvendo campos de dois (ou mais) objetos diferentes, e disparar ações em todos eles, é um problema da modelagem OO De quem é a responsabilidade de coordenar essa interação?

Coordenação, cont. Podemos eleger um dos objetos que estão participando da interação para ser o coordenador, mas isso aumenta o acoplamento entre os objetos que estão interagindo Ou podemos usar um mediador, um objeto que vai verificar se houve alguma interação, e mandar os objetos envolvidos tomarem uma ação O mediador precisa ter acesso ao estado dos objetos que estão interagindo, mas o acoplamento entre esses objetos diminui Vamos usar a instância de Jogo como mediador em nosso exemplo