programação i aula 11 (arrays de objetos)

Post on 03-Jan-2016

19 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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]; - PowerPoint PPT Presentation

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