Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Objetos e array

Talvez tenha deixado passar esse conceito despercebido nos cursos anteriores. Mas se quando crio um array tenho de o usar o "new", isso significa que o array se baseia em uma classe. Até então tinha entendido que sempre que uso o "new" estou instanciando um objeto baseado em uma classe.

5 respostas

Boa noite, Lucas! Como vai?

Eu não entendi a sua pergunta. Vc se refere à necessidade de fazer new ArrayList<String>() para a criação de uma lista de String por exemplo, é isso?

Bom dia Lucas. Objetos são instancias de classes certo? E se temos uma classe(um tipo) como Pessoa, Animal, etc.. usarmos o new para criar um objeto dessa classe. Um array também é um objeto que instanciamos e guardamos em uma variável de instância, mas ao invés de usar new Array, usarmos os [].

Os objetos não são baseados em uma classe, na verdade, é ao contrário, todas as classes tem como um pai o Object, é tipo:

OBJECT ---------> CLASS

(o object é o pai, está antes da class) Toda vez que você criar/instanciar uma classe, vai ter um Object por de baixo dos panos. Quando você cria a classe (exemplo) Pessoa(), e instancia como Pessoa() Lusca = new Pessoa(); você já está trabalhando com uma classe que depende de Object. Espero ter ajudado.

Certo mas apenas pra confirmar. O "new" não necessariamente precisa criar um objeto baseado em uma classe e iniciar o seu construtor? Pois com o a criação de um array no meu entendimento isso não acontece. O "new" apenas aloca um espaço na memória e cria uma referência pra esse espaço. É isso? Espero ter explicado minha dúvida corretamente. Obrigado

solução!

Fala aí, Lucas! Tudo bem? Vamos lá!

Quando você usa "new" em alguma parte do seu código você está dizendo à JVM que você precisa de um objeto baseado numa classe que tem o construtor X ou Y.

É normal usarmos o construtor default da classe para inicializarmos alguma variável, em alguns casos usamos a sobrecarga de construtores. Veja:

Suponha que você tem uma classe chamada Pessoa. Logo:

Pessoa(){ ... } // construtor default
Pessoa("Pedro", "29 anos"){ ... } // sobrecarga

Quando você cria um array e usa new após o sinal de igual. Você está dizendo pro compilador que você quer um objeto que tenha os comportamentos da classe que está do lado direito do sinal de igual.

Usuario joao = new Pessoa();

O mesmo serve para o Array do qual você poderá dizer ao compilador qual "forma" o objeto deverá assumir.

List<Pessoa> listPessoa = new ArrayList<Pessoa>();

Para melhor entendimento minha sugestão são as aulas de Polimorfismo em Java.