5
respostas

Classe - Criar objeto

Olá, tenho a seguinte dúvida: Existem classes que são instanciáveis e outras não (estáticas). Como saber quando não devo instanciar uma classe?

5 respostas

Olá Marcos. Normalmente para fazer com que uma classe no java não seja instanciada privamos o seu construtor e oferecemos métodos estáticos. Lembrando que apenas classes internas, métodos e atributos podem ser static. Se sua dúvida é sobre quando usar static, depende do que você precisa.

Por exemplo, eu poderia oferecer uma classe que possui métodos matemáticos para realizar alguns cálculos. Nesse caso simples não teria porque eu instanciar essa classe toda hora que eu for realizar um cálculo de fatorial por exemplo. Para isso eu poderia chamar o método estático ClasseMatematica.fatorial(10) e ele me retornaria o fatorial de 10. Um exemplo de uma classe assim é a Math do próprio java.

Caso eu queira ter objetos únicos (por exemplo: uma pessoa, cliente...) eu precisaria ter uma forma de instanciar essa classe para criar varios objetos.

Olá Gabriel, muito obrigado pela resposta. Existe alguma tabela ou tutorial que mostre as classes estáticas e seus métodos? Ex.: Classe.metodo01.metodo02.metodo03

Uma classe não pode ser estática, apenas classes internas, métodos e atributos conseguem receber o modificador static.

Não entendi muito bem essa sua última pergunta, você procura um exemplo de uma "classe estática"?

Se for, aqui vai um exemplo simples para demostrar:

Classe Matematica:

public class Matematica {
    private Matematica() {} // Construtor privado    

    // Metodo estatico fatorial
    public static int fatorial(int num) {    
        int fat = 1;    

        for (int i = 1; i <= num; i++) {
            fat *= i;
        }    
        return fat;
    }
    // Outros metodos...
}

Classe de Teste:

public class TestaMatematica {
    public static void main(String[] args) {
        System.out.println(Matematica.fatorial(10));
    }
}

Olá Gabriel,

Classes próprias do java(java.io, java.file, javax.persistence) , como saber quando devo ou não instanciar?

Obrigado Gabriel

Normalmente (se você estiver usando alguma IDE) após você digitar o nome da classe e ponto (.) ele já vai te mostrar os métodos disponíveis (caso existam métodos estáticos) para serem usados logo ali. Caso contrário ele não mostrará e provavelmente você precisará instanciar tal classe.

Você também pode consultar a documentação oficial do java no caso dessas dúvidas.

Exemplos:

A classe Scanner do java: Não existem métodos estáticos disponíveis para serem usados.

A classe Math do java: Existem métodos (abs, acos, asin, etc...) e constantes (E, PI) estáticas disponíveis.

Caso esteja usando o Eclipse, para mostrar a caixa de métodos disponíveis basta usa o atalho ctrl + espaço depois de escrever.

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