Operações sobre Arrays

Programação 3: Orientação a Objetos e Java


Por serem objetos especiais, as operações associadas a arrays são representadas em Java com a notação usual de arrays em linguagens imperativas. Por exemplo, considere o método que cadastra uma conta em um banco:

  void cadastro(Conta c) {
    contas[indice] = c;
    indice = indice + 1;
  }  
Este método ilustra como o indice-ésimo componente do array pode ser alterado, enquanto o método a seguir ilustra como obter o i-ésimo componente do array:
  Conta procura(long num) {
// Comentários de uma linha são introduzidos assim...
// Variáveis locais ao método.
    int		i = 0;
    boolean	achou = false;
    
    while ((! achou) & (i < indice)) {
      if (contas[i].num_conta() == num) achou = true;
      else i = i + 1;
    }
    if (achou == true) return contas[i];
    else return null;
  }
onde a constante null corresponde a referência nula; isto é, uma referência que não aponta para nenhum objeto.

Este método retorna a conta de número num cadastrada no banco responsável pela execução do método. Note que a expressão

contas[i].num_conta()
denota o envio de uma mensagem para o i-ésimo componente de contas requisitando a execução do método num_conta(), ou seja, pedindo o número da conta correspondente.

Note também que assim como atributos de tipo classe, componentes de array, argumentos e resultados de tipo classe também denotam referências para objetos, ao invés de objetos propriamente. No entanto, isto é normalmente implícito em Java; só nota-se que trabalhamos com referências quando a constante null é usada explicitamente.


Paulo Borba (phmb@di.ufpe.br)