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

Duvidas sobre construtor e Static

Pelo oque eu entendi, um atributo ou método Static não pertencem a instância. Então quando eu instanciar um objeto, eu não consigo manipular através dos gets e sets. E o construtor tem a função de inicializar atributos.

Minha duvida é, no dia-a-dia, quando estiver desenvolvendo com Java, em quais circunstâncias que eu deverei utilizar esses dois conceitos?

2 respostas
solução!

Oie Leornado, tudo bem com você?

Quando usar o construtor:

A finalidade do construtor como o nome já diz, é construir o objeto. Ou seja, é no construtor que nós setamos todos os atributos necessários para deixar o objeto pronto para uso.

Vamos imaginar a instância de uma "conta de um banco", para se criar uma "conta", do que é necessário? Uma "conta" pode ser criada sem o nome do titular? Sem uma agência ou número? A resposta é não! E o construtor é usado exatamente para evitar que algo do tipo ocorra, onde todos os atributos necessários para aquele objeto funcionar são setados durante a construção do objeto.

Segue exemplo abaixo:


public class Conta{

        private double saldo;
        private int agencia;
        private int numero;
        private String titular;

       public Conta(int agencia, int numero, String titular){
            this.agencia = agencia;
            this.numero = numero;
            this.titular = titular;
            this.saldo = 0;
    }
}

Quando usar um atributo ou método "Static":

Para sabermos quando devemos usar o "Static", podemos fazer uma simples pergunta: "Faz sentido chamar esse método, mesmo antes que algum objeto tenha sido construído?". Como o "Static" define se um atributo ou método será pertencente a Classe e não ao objeto essa pergunta nos ajuda a chegar numa conclusão.

Se ainda assim houver alguma dúvida, o "Static" pode ser usado nos seguintes cenários:

  • Quando você estiver escrevendo uma classe utilitária.
  • Se o método não estiver usando nenhuma variável instanciavel.
  • Se alguma operação não depender da criação de uma instancia.
  • Se houver algum código que pode facilmente ser compartilhado por todas as instancias da classe.
  • Se você tiver certeza que o método nunca vai ser alterado ou sobrescrito.

Conclusão:

Como você ainda está no começo da linguagem Java você pode por enquanto ignorar boa parte do que eu disse sobre "Static" e focar em aprender inicialmente apenas o básico da linguagem. Mais tarde, nos cursos mais avançados de Java aqui do Alura você começar a ver algumas das coisas que comentei aqui.

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!

Vlw Igor, muito boa sua explicação, ajudou bastante!