Copiado de https://www.ime.usp.br/~pf/estruturas-de-dados/aulas/stack.html#q-and-a
- Pergunta: No código do método resize() da classe StackRA, por que não escrever temp = new Item[max] no lugar de temp = (Item[]) new Object[max] ?
Resposta: Por razões técnicas, Java não permite criar vetores (= arrays) de tipo genérico, como Item[]. É preciso então criar um vetor do tipo Object[] e depois aplicar um cast a esse vetor.
- Pergunta: O que é Object?
Resposta: Object é a classe que inclui todas as demais classes. Em outras palavras, todas as classes em Java são subclasses da classe Object. Assim, todas as classes herdam os métodos de Object (como equals(), por exemplo), embora em geral as subclasses redefinam esses métodos.
- Pergunta: Por que declarar Node como uma classe aninhada (classe dentro de outra classe)? Por que declará-la private?
Resposta: Ao declarar como private a classe aninhada Node, o acesso a Node fica restrito aos métodos e variáveis de instância que estão na classe que contém Node. As variáveis de instância de uma classe aninhada privada podem ser acessadas diretamente da classe que a contém mas de nenhum outro lugar, de modo que não há necessidade de declarar as variáveis de instância como public ou private.