Opa, Marcos! Boa! =)
Só toma cuidado com uma coisa... Imagina que você adicionou 10 elementos, o que vai acontecer? Do jeito que o código está?
Depois do 10º, totalItens será igual a 10 e, quando for adicionar o próximo, ao invés de tentar criar um novo array, ele tentará adicionar o novo item nesse array e você deve tomar uma Exception... =|
Então, o que você precisa fazer, é começar com a verificação:
private int totalItens = 0;
private Item[] vetorItem = new Item[10];
public void adiciona(Item item) {
  if (totalItens == vetorItem.length) {
    // Cria novo array...
  }
  vetorItem[totalItens] = item;
  totalItens++;
}
Agora, repare que só queremos criar um novo array, então podemos começar criando um vetor auxiliar:
// Código anterior omitido...
if (totalItens == vetorItem.length) {
  Item[] vetorAuxiliar = new Item[2 * totalItens];
  // E agora?
}
// Código posterior omitido...
Feito isso, queremos copiar tudo que temos em vetorItem para o novo vetor... Para isso, um simples for deve resolver. =)
// Código anterior omitido...
if (totalItens == vetorItem.length) {
  Item[] vetorAuxiliar = new Item[2 * totalItens];
  for (int i = 0; i < vetorItem.length; i++) {
    vetorAuxiliar[i] = vetorItem[i];
  }
  // E agora?
}
// Código posterior omitido...
Para finalizar, queremos que nosso vetorItem comece a utilizar o vetorAuxiliar:
// Código anterior omitido...
if (totalItens == vetorItem.length) {
  Item[] vetorAuxiliar = new Item[2 * totalItens];
  for (int i = 0; i < vetorItem.length; i++) {
    vetorAuxiliar[i] = vetorItem[i];
  }
  vetorItem = vetorAuxiliar;
}
// Código posterior omitido...
Acredito que fazendo isso resolvemos o problema! Você poderia testar e nos dar um feedback se resolver ou não, o seu problema? =)
Espero ter ajudado,
Fábio