SlideShare uma empresa Scribd logo
1 de 19
Arthur E. de O. Carosia
 Imagine que comecemos a aumentar nossa
classe Conta e quiséssemos armazenar
informações sobre o cliente associado à
conta.
 Imagine que comecemos a aumentar nossa
classe Conta e quiséssemos armazenar
informações sobre o cliente associado à
conta.
 Seria pertinente criar uma classe Cliente com
os atributos nome, sobrenome e cpf (ou
outros atributos necessários) e associá-la à
classe Conta.
 Sentido “tem um”
◦ Uma conta tem um cliente associado
 Composição
◦ É o uso de uma classe/objeto em outra
classe/objeto.
◦ Ato de delegar trabalho para outro objeto.
◦ Objetivo de comunicação e troca de informações.
◦ Forma de reúso.
 Evitando NullPointerException.
 Implementar a classe Jogador com métodos
get e set, construtores (um vazio e um com
todos atributos) e os seguintes atributos:
nome, número, time e posição.
 Cada jogador possui um comportamento,
caracterizado pela saída da String ‘jogando’.
 Criar 3 jogadores em uma classe principal,
lendo todos os seus atributos do teclado.
 Para cada jogador, verificar se sua posição é
uma das seguintes: goleiro, defesa, meio-
campo ou atacante.
 Verificar se o número do jogador está entre 1
e 99.
 Implementar a classe Time, que possui um
nome e quatro jogadores, sendo um de cada
posição:
◦ goleiro,
◦ defesa,
◦ meio-campo
◦ Atacante
 No programa principal, ler do teclado dois
times completos, ou seja, o total de oito
jogadores.
 Problemas no uso de Arrays em Java:
◦ não podemos redimensionar um array em Java;
◦ é impossível buscar diretamente por um
determinado elemento cujo índice não se sabe;
◦ não conseguimos saber quantas posições do array
já foram populadas sem criar, para isso, métodos
auxiliares.
◦ Manipulação de elementos em um Array também
pode comprometer a aplicação
 Conjunto de classes e interfaces que reside
no pacote java.util desde o Java2 1.2.
 API robusta e possui diversas classes que
representam estruturas de dados avançadas.
 Uma lista é uma coleção que permite elementos
duplicados e mantém uma ordenação específica
entre os elementos.
 Quando percorrer a lista, os elementos serão
encontrados em uma ordem pré-determinada,
definida na hora da inserção dos mesmos.
 A implementação mais utilizada da
interface List é a ArrayList, que trabalha com um
array interno para gerar uma lista.
 Criando e adicionando elementos (no final da
lista) em um ArrayList
 Não é necessário informar qual é o tamanho
da lista
 A lista cresce conforme for necessário.
 Toda lista (na verdade, toda Collection)
trabalha do modo mais genérico possível.
 Pode-se criar uma lista de qualquer objeto
 Percorrendo a lista
 Pesquisar como utilizar o Enhanced For para
percorrer um ArrayList.
 Pesquisar o funcionamento dos seguintes
métodos:
◦ Remove
◦ Contains
 No Java 5.0, podemos usar o recurso de
Generics para restringir as listas a um
determinado tipo de objetos (e não
qualquer Object).
 Elimina a necessidade de casting
 Use um ArrayList na classe Principal do
exercício anterior para ler e armazenar uma
quantidade não determinada de jogadores.
 Crie na classe Jogador um método que
retorne os seus atributos concatenados na
forma de String.
 Em seguida, percorra todo o ArrayList na
classe Principal exibindo todos atributos dos
jogadores.
Arthur E. de O. Carosia

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao PythonMarcio Palheta
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosDaniel Brandão
 

Mais procurados (20)

Exemplo de Plano de testes
Exemplo de Plano de testes Exemplo de Plano de testes
Exemplo de Plano de testes
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Introdução ao Python
Introdução ao PythonIntrodução ao Python
Introdução ao Python
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Java - Primeiros passos
Java - Primeiros passosJava - Primeiros passos
Java - Primeiros passos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando ArquivosAula 04 PHP - Utilizando Funções e Manipulando Arquivos
Aula 04 PHP - Utilizando Funções e Manipulando Arquivos
 
Linguagem SQL
Linguagem SQLLinguagem SQL
Linguagem SQL
 
POO - 19 - Elementos Estáticos
POO - 19 - Elementos EstáticosPOO - 19 - Elementos Estáticos
POO - 19 - Elementos Estáticos
 

Semelhante a Java: Composicao e Array List

Semelhante a Java: Composicao e Array List (20)

Java: strings e arrays
Java: strings e arraysJava: strings e arrays
Java: strings e arrays
 
Resumão java
Resumão javaResumão java
Resumão java
 
Python2.5.ppt
Python2.5.pptPython2.5.ppt
Python2.5.ppt
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Java Desktop
Java DesktopJava Desktop
Java Desktop
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
 
Java basico modulo_03
Java basico modulo_03Java basico modulo_03
Java basico modulo_03
 
Java8
Java8Java8
Java8
 
Top0
Top0Top0
Top0
 
Top0
Top0Top0
Top0
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
 
PHP Básico - Parte 3
PHP Básico - Parte 3PHP Básico - Parte 3
PHP Básico - Parte 3
 
Classes e Estrutura de Dados
Classes e Estrutura de DadosClasses e Estrutura de Dados
Classes e Estrutura de Dados
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Lista de inteiros
Lista de inteirosLista de inteiros
Lista de inteiros
 
Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections Classes Java , JDBC / Swing / Collections
Classes Java , JDBC / Swing / Collections
 
Aula 2 2
Aula 2 2 Aula 2 2
Aula 2 2
 

Mais de Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaArthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuArthur Emanuel
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomArthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoArthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosArthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoArthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPSArthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo WebservicesArthur Emanuel
 

Mais de Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Java: Composicao e Array List

  • 1. Arthur E. de O. Carosia
  • 2.  Imagine que comecemos a aumentar nossa classe Conta e quiséssemos armazenar informações sobre o cliente associado à conta.
  • 3.  Imagine que comecemos a aumentar nossa classe Conta e quiséssemos armazenar informações sobre o cliente associado à conta.  Seria pertinente criar uma classe Cliente com os atributos nome, sobrenome e cpf (ou outros atributos necessários) e associá-la à classe Conta.
  • 4.  Sentido “tem um” ◦ Uma conta tem um cliente associado  Composição ◦ É o uso de uma classe/objeto em outra classe/objeto. ◦ Ato de delegar trabalho para outro objeto. ◦ Objetivo de comunicação e troca de informações. ◦ Forma de reúso.
  • 5.
  • 7.
  • 8.  Implementar a classe Jogador com métodos get e set, construtores (um vazio e um com todos atributos) e os seguintes atributos: nome, número, time e posição.  Cada jogador possui um comportamento, caracterizado pela saída da String ‘jogando’.  Criar 3 jogadores em uma classe principal, lendo todos os seus atributos do teclado.  Para cada jogador, verificar se sua posição é uma das seguintes: goleiro, defesa, meio- campo ou atacante.  Verificar se o número do jogador está entre 1 e 99.
  • 9.  Implementar a classe Time, que possui um nome e quatro jogadores, sendo um de cada posição: ◦ goleiro, ◦ defesa, ◦ meio-campo ◦ Atacante  No programa principal, ler do teclado dois times completos, ou seja, o total de oito jogadores.
  • 10.  Problemas no uso de Arrays em Java: ◦ não podemos redimensionar um array em Java; ◦ é impossível buscar diretamente por um determinado elemento cujo índice não se sabe; ◦ não conseguimos saber quantas posições do array já foram populadas sem criar, para isso, métodos auxiliares. ◦ Manipulação de elementos em um Array também pode comprometer a aplicação
  • 11.  Conjunto de classes e interfaces que reside no pacote java.util desde o Java2 1.2.  API robusta e possui diversas classes que representam estruturas de dados avançadas.
  • 12.  Uma lista é uma coleção que permite elementos duplicados e mantém uma ordenação específica entre os elementos.  Quando percorrer a lista, os elementos serão encontrados em uma ordem pré-determinada, definida na hora da inserção dos mesmos.  A implementação mais utilizada da interface List é a ArrayList, que trabalha com um array interno para gerar uma lista.
  • 13.  Criando e adicionando elementos (no final da lista) em um ArrayList  Não é necessário informar qual é o tamanho da lista  A lista cresce conforme for necessário.
  • 14.  Toda lista (na verdade, toda Collection) trabalha do modo mais genérico possível.  Pode-se criar uma lista de qualquer objeto
  • 16.  Pesquisar como utilizar o Enhanced For para percorrer um ArrayList.  Pesquisar o funcionamento dos seguintes métodos: ◦ Remove ◦ Contains
  • 17.  No Java 5.0, podemos usar o recurso de Generics para restringir as listas a um determinado tipo de objetos (e não qualquer Object).  Elimina a necessidade de casting
  • 18.  Use um ArrayList na classe Principal do exercício anterior para ler e armazenar uma quantidade não determinada de jogadores.  Crie na classe Jogador um método que retorne os seus atributos concatenados na forma de String.  Em seguida, percorra todo o ArrayList na classe Principal exibindo todos atributos dos jogadores.
  • 19. Arthur E. de O. Carosia