100 likes | 199 Views
Programação I Aula 11 (Arrays de Objetos). Prof. Gilberto Irajá Müller. Última atualização 27/5/2009. Arrays de Objetos. Um array pode conter referências a um conjunto de objetos. Ex.: Funcionario f[] = new Funcionario[3];
E N D
Programação IAula 11(Arrays de Objetos) Prof. Gilberto Irajá Müller Última atualização 27/5/2009
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
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);
nome: Ruy Cabeção salario: 4320.0 numeroDeDependentes: 1 Funcionario nome: Tcheco salario: 5000.0 numeroDeDependentes: 2 Funcionario nome: Jonas salario: 1234.0 numeroDeDependentes: 0 Funcionario Arrays de Objetos • O que teremos em memória?
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
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();} ______________________
Cilindro a Cubo h a r a Cálculo do volume: a3 Cálculo do volume: .r2.h 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);
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!
Hot Topic Ex.: 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]); } }
Métodos • Referências bibliográficas • http://inf.unisinos.br/~anibal