POO AulaArrayJava

Embed Size (px)

DESCRIPTION

POO AulaArrayJava

Citation preview

  • 1Arrays

    Joo FerreiraSandra Siebra

    ilostmy.info

    Arrays Estruturas capazes de armazenar mais

    de um valor de mesmo tipo (Primitivo ou Objeto)

    Unidimensionais ou multidimensionais A posio de cada elemento do array

    identificada por um ou mais ndices Em Java so tipos especiais (Objetos) Tm tamanho fixo depois de criados. No

    entanto, podem ser criados em tempo de execuo

    Array Unidimensional - DeclaraoConhecidos tambm como listas simples ou vetoresForma geral de declarao:

    [ ] ; ou [ ];

    [ ] = new [no_elementos]; ou [ ] = new [no_elementos];

    Ex: int vetor [ ]; ou int [ ] vetor;

    vetor

    3210

    Conceitos

    a

    b

    c

    3210

    0,0

    2,01,2

    endereo

    contedo

    a uma varivel simples

    b uma varivel unidimensional com 4 valores, identificados por suas posio dentro do conjunto: b[0], b[1], b[2], b[3]

    c uma varivel bidimensional com 12 valores, identificados por suas posio dentro do conjunto:c[0,0], c[0,1], c[0,2], c[0,3], c[1,0], c[1,1], c[1,2], c[1,3], c[2,0], c[2,1], c[2,2], c[2,3],

    Array Unidimensional - Inicializao O operador new usado para criar um array

    em Java Os elementos de um array podem ser dados

    bsicos, mas o conjunto formado por eles um objeto

    Para inicializar o array: = new [no_elementos];

    Exemplos: int vetor [ ]; ou int [ ] vetor; vetor = new int [100]; // inicializao em outro local

    Declarao e criao de arrays Sintaxe:

    Declarao: Tipo nomeArray[ ];

    Instanciao nomeArray = new Tipo[tamanho];

    Declarao e instanciao juntos: Tipo nomeArray[ ] = new Tipo[tamanho];

  • 2Exemplos de Arrays Array deve ser declarado em seguida

    instanciado

    // criao e instanciao

    int[] a = new int[100];

    int vetor [ ] = new int [100]; // array iniciado na declaraoint vetor [ ] = {1,3,4,5,8,10}; // outra forma de inicializao

    String[] nomes = new String[200]

    int[] a; //declaraodouble[] x; // outra forma de declararCliente[] clientes;

    Primeiro item: a[0]ltimo item: a[99]

    Mais exemplos

    int[] primosPequenos = {2, 3, 5, 7, 11, 13};

    String[] cores = {"Vermelho", "Azul", "Amarelo"};

    double[] salarios = new double[5];for (int i = 0; i

  • 3Arrays de Objetos Armazenam referncias a objetos de um

    determinado tipo Devem ser alocados da mesma forma

    que arrays de tipos primitivos Quando no atribudo explicitamente, o

    valor de cada i-simo elemento do array inicializado com null.

    Arrays de Objetos ExemplosConta[] contas = new Conta[20];

    contas[0] = new Conta(111,40);

    contas 0 1 2 19

    null null

    contas 0 1 2 19

    nullnull

    Utilizao de arrays no Sistema Bancrio

    Um sistema bancrio deve ser capaz de armazenar as contas em alguma estrutura

    Uma classe de armazenamento de contas pode ser a responsvel pelos servios de inserir, atualizar, remover e pesquisar

    A classe se chama ArrayContas e guarda as contas num array.

    Classe ArrayContas

    public class ArrayContas{private Conta[] contas;private int indice = 0;private int tam;

    public ArrayContas(int tam){this.tam = tam;contas = new Conta[tam];}

    }

    Classe ArrayContas - inserir

    public void inserir(Conta c){contas[indice] = c;indice = indice + 1;

    }

    Classe ArrayContas - mtodo auxiliar

    private int procurarIndice(int num) {int i = 0;int resp = -1;boolean achou = false;while ((i < indice) && !achou) {

    if (contas[i].getNumero()==num) resp = i;achou = true;

    } i = i + 1;

    }

    return resp;}

  • 4Classe ArrayContas - checando existncia

    public boolean existe(int num) {boolean resp = false;

    int i = this.procurarIndice(num);if(i != -1){

    resp = true;}return resp;

    }

    Classe ArrayContas - atualizar

    public void atualizar(Conta c){int i = procurarIndice(c.getNumero());if (i != -1) {contas[i] = c;

    } else {System.out.println("Conta nao encontrada");

    }}

    Classe ArrayContas - pesquisar

    public Conta pesquisar(int num){Conta resp = null;if (existe(num)) {

    int i = this.procurarIndice(num);resp = contas[i];

    } else {System.out.println("Conta nao encontrada");

    }return resp;

    }

    Classe ArrayContas - remover

    public void remover(int num){if (existe(num)) {int ind = this.procurarIndice(num);for(int i=ind; i