programação i aula 11 (arrays de objetos)
Post on 03-Jan-2016
19 Views
Preview:
DESCRIPTION
TRANSCRIPT
Programação IAula 11
(Arrays de Objetos)
Prof. Gilberto Irajá MüllerProf. 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);
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
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();} ______________________
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
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 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]);
}}
Métodos• Referências bibliográficas
• http://inf.unisinos.br/~anibal
top related