Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Instanciando classe

Ao instanciar a classe AdopetConsoleApplication para depois chamar os métodos que deixaram de ser estáticos não estamos criando uma redundância no código, já que estamos instanciando a classe dentro dela mesma? Eu não sei se há vantagem nessa abordagem, pois depois preciso invocar os métodos pelo instanciamento, quando antes eram chamados diretamente. São dúvidas, não são críticas. Podem me ajudar?

Agradecido.

1 resposta
solução!

Olá, Marcus! Como vai?

Suas dúvidas são super validas e agradeço por trazê-las aqui. Vamos tentar esclarecer.

A instância de uma classe dentro dela mesma pode parecer redundante, mas, na verdade, é uma prática comum em alguns padrões de projeto, como o Singleton, por exemplo. No entanto, o que você está vendo aqui não é exatamente uma instância da classe dentro dela mesma, mas a criação de uma instância para acessar métodos não estáticos.

Quando um método é estático, ele pertence à classe e não a uma instância específica da classe. Isso significa que você pode chamá-lo diretamente sem criar uma instância da classe. No exemplo que você mencionou, o método listarAbrigos() é estático, então você pode chamá-lo diretamente como listarAbrigos().

Por outro lado, se um método não é estático, ele pertence a uma instância da classe. Isso significa que você precisa criar uma instância da classe para chamar esse método. Se você tivesse um método não estático listarPets(), por exemplo, você precisaria criar uma instância da classe AdopetConsoleApplication para chamá-lo, algo como:

AdopetConsoleApplication app = new AdopetConsoleApplication();
app.listarPets();

A vantagem de usar métodos não estáticos é que eles podem acessar e modificar os campos de instância da classe, o que os métodos estáticos não podem fazer. Isso pode ser útil se você tiver várias instâncias da classe que precisam manter seu próprio estado.

Espero que isso esclareça suas dúvidas! Lembre-se de que a escolha entre métodos estáticos e não estáticos depende do que você está tentando realizar. Ambos têm seus usos e vantagens.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software