DEV Community

Tente isso 6 - 2: Sobrecarregue o construtor de Queue

  • O projeto visa melhorar a classe Queue adicionando dois novos construtores.

  • O primeiro construtor criará uma nova fila a partir de outra fila existente.

  • O segundo construtor permitirá criar uma fila com valores iniciais.

  • Esses construtores aprimoram significativamente a usabilidade da classe Queue.

1 Crie um arquivo chamado QDemo2.java e copie a classe Queue atualizada da seção Tente Isto 6-1 para ele.

2 Primeiro, adicione o construtor a seguir, que constrói uma fila a partir de outra.

// Constrói uma fila a partir de outra.
Queue(Queue ob) {
putloc = ob.putloc;
getloc = ob.getloc;
q = new char[ob.q.length];
// copia elementos
for(int i=getloc; i < putloc; i++)
q[i] = ob.q[i];
}

O construtor inicializa putloc e getloc com valores de um objeto ob. Aloca um novo array para a fila e copia os elementos de ob para esse novo array. A nova fila será uma cópia idêntica da original, mas será um objeto separado e independente.

3 Agora, adicione o construtor que inicializa a fila a partir de um array de caracteres, como mostrado aqui:

// Constrói uma fila com valores iniciais.
Queue(char a[]) {
putloc = 0;
getloc = 0;
q = new char[a.length];
for(int i = 0; i < a.length; i++) put(a[i]);
}

Esse construtor cria uma fila suficientemente grande para conter os caracteres de a e então armazena-os na fila.

Top comments (0)