Em Java, estático é uma palavra-chave que pode ser usada com variáveis, classes, blocos e métodos. Quando usamos a palavra-chave static antes de qualquer um deles, significa que o membro especificado pertence ao próprio tipo. Em outras palavras, uma instância de um membro estático é criada e compartilhada entre todas as instâncias da classe.
Nesta seção, usaremos estático palavra-chave com o Classe Java e também entender por que usamos uma classe estática?
Classe estática Java
Podemos declarar uma classe estática usando a palavra-chave static. Uma classe só pode ser declarada estática se for uma classe aninhada . Não requer nenhuma referência da classe externa. A propriedade da classe estática é que ela não nos permite acessar os membros não estáticos da classe externa.
Para entender o conceito de classe estática, primeiro precisamos entender o conceito de interior, exterior, e aninhado aula.
Classe interna
As classes que não são estáticas e aninhadas são chamadas classes internas . Observe que não podemos criar uma instância da classe interna sem criar uma instância da classe externa. Sem usar a referência à instância da classe externa, uma instância da classe interna pode acessar os membros de sua classe externa. Isso torna o programa simples e conciso.
Classe externa
A classe na qual a classe aninhada é definida é chamada classe externa .
Classe aninhada
Java nos permite definir uma classe dentro de uma classe que é conhecida como classe aninhada . Pode ser estático ou não estático. A principal diferença entre classe estática e não estática é que:
- Uma instância da classe aninhada estática pode ser criada sem criar uma instância de sua classe externa.
- Os membros estáticos e não estáticos de uma classe externa podem ser acessados por uma classe interna.
- Os membros estáticos da classe externa podem ser acessados apenas pela classe estática.
Lembrar
- Todas as classes estáticas são classes aninhadas, mas vice-versa não é verdade.
- Ele pode acessar apenas membros estáticos da classe externa.
- Variáveis não estáticas e métodos de instância não podem ser acessados dentro da classe estática. Se você tentar acessar uma referência não estática de um campo estático, ocorrerá um erro: Não é possível fazer uma referência estática ao campo não estático.
- Podemos criar blocos, variáveis e métodos estáticos dentro de uma classe estática.
- Uma classe pode ter várias classes estáticas.
- Não podemos acessar a classe estática se ela estiver dentro do bloco estático.
- Pode haver qualquer número de classes estáticas dentro de uma classe estática.
Exemplo de classe estática Java
JavaStaticClassExample.java
public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } }
Saída:
Javatpoint
Por que usamos classe estática em Java?
Em Java, a palavra-chave estática é usada principalmente para gerenciamento de memória. Podemos usar a palavra-chave estática com variáveis, métodos, blocos e classes. Usar a classe estática é uma forma de agrupar classes. Também é usado para acessar o membro primitivo da classe envolvente por meio da referência do objeto. As classes estáticas são carregadas pelo carregador de classe no momento do primeiro uso, mas não quando a classe envolvente é carregada.