Download - Programação I Aula 11 (Arrays de Objetos)
![Page 1: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/1.jpg)
Programação IAula 11
(Arrays de Objetos)
Prof. Gilberto Irajá MüllerProf. Gilberto Irajá Müller
Última atualização 27/5/2009
![Page 2: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/2.jpg)
Arrays de Objetos• Um array pode conter referências a um conjunto
de objetos. Ex.:Funcionario f[] = new Funcionario[3];
• Será criado um novo objeto array de nome f, cujos elementos são variáveis objeto, ou seja, referências para objetos do tipo Funcionario
![Page 3: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/3.jpg)
Arrays de Objetos• Para termos realmente algum funcionário
apontado por algum elemento do array, teremos de criar um objeto funcionário e vinculá-lo a uma das variáveis objeto do array.
Ex:f[0] = new Funcionario(“Ruy Cabeção”, 4320.00, 1);f[1] = new Funcionario(“Tcheco”, 5000.00, 2);f[2] = new Funcionario (“Jonas", 1234.00, 0);
![Page 4: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/4.jpg)
Arrays de Objetos• O que teremos em memória?
nome: Ruy Cabeçãosalario: 4320.0numeroDeDependentes: 1
Funcionario
nome: Tchecosalario: 5000.0numeroDeDependentes: 2
Funcionario
nome: Jonassalario: 1234.0numeroDeDependentes: 0
Funcionario
![Page 5: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/5.jpg)
Arrays de Objetos• Array de objetos e herança – aplicação do
polimorfismo
Podemos utilizar arrays para armazenar objetos, tanto da superclasse como da subclasse
![Page 6: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/6.jpg)
Arrays de Objetos• Array de objetos e herança – aplicação do
polimorfismo
A a[] = new A[3];a[0] = new A();a[1] = new B();a[2] = new C();
a[0].m1(); ____________________________________
a[1].m1(); ____________________________________a[2].m2(); ____________________________________if(a[2] instanceof C){C c=(C) a[2]); c.m2();} ______________________
![Page 7: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/7.jpg)
Arrays de Objetos• Exercício 11.1. Utilizando o exercício de cálculo do volume
do Cilindro e do Cubo, crie uma classe teste que guarde 10 objetos em um array. Para cada objeto, sorteie um número e verifique se este é par ou ímpar. Caso o número seja par, instancie um objeto do tipo Cubo, caso contrário, instancie um objeto do tipo Cilindro. Ao final, exiba o volume dos 10 objetos colocando qual foi o objeto instanciado: Cubo ou um Cilindro.
• VolumeCilindro• public int getVolume();
• Cubo• public Cubo(int a);
• Cilindro• public Cilindro(int r, int h);
Cubo
a
a
a
Cálculo do volume: a3
Cilindro
Cálculo do volume: .r2.h
h
r
![Page 8: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/8.jpg)
Hot Topic• Tamanho Físico e Tamanho Lógico de um Array
Um objeto array tem um tamanho físico que é atribuído no momento da sua criação. Pode ser obtido através da variável length. Ex.: int[] a = new int[3];System.out.println(a.length); // retornará 3
Contudo, ao não utilizarmos todos os índices do array, precisaremos saber quais quantos “espaços” temos ocupado. Para isso, utilizamos uma variável do tipo inteiro que é incrementada a cada inclusão de um elemento no array!
![Page 9: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/9.jpg)
Hot TopicEx.:public class Aluno{
private double nota[]; //atributo do tipo array, de nome nota
private int quantidadeDeNotas; //este é o tamanho lógico
public Aluno (int maxNotas){nota = new double[maxNotas]; quantidadeDeNotas = 0;
}public void insereNota(double n){
if (quantidadeDeNotas < nota.length)nota[quantidadeDeNotas++] = n;
}public void exibeNotas(){
for (int i = 0; i < quantidadeDeNotas; i++)System.out.println(nota[i]);
}}
![Page 10: Programação I Aula 11 (Arrays de Objetos)](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813626550346895d9d9d47/html5/thumbnails/10.jpg)
Métodos• Referências bibliográficas
• http://inf.unisinos.br/~anibal