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

10
Programação I Aula 11 (Arrays de Objetos) Prof. Gilberto Irajá Müller Prof. Gilberto Irajá Müller Última atualização 27/5/2009

Upload: sydney-smith

Post on 03-Jan-2016

19 views

Category:

Documents


1 download

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

Page 1: Programação I Aula 11 (Arrays de Objetos)

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)

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)

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)

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)

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)

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)

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)

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)

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)

Métodos• Referências bibliográficas

• http://inf.unisinos.br/~anibal