O que está acontecendo quando um membro dentro de um class
é declarado como static
..? Esses membros podem ser acessados sem instanciar o class
. Portanto, criar classe externa (classe de nível superior) static
não tem significado. Portanto, não é permitido.
Mas você pode definir classes internas como estáticas (como membro da classe de nível superior). Em seguida, essa classe pode ser acessada sem instanciar a classe de nível superior. Considere o seguinte exemplo.
public class A {
public static class B {
}
}
Agora, dentro de uma classe diferente C
, a classe B
pode ser acessada sem criar uma instância da classe A
.
public class C {
A.B ab = new A.B();
}
static
as classes também podem ter non-static
membros. Somente a classe fica estática.
Mas se a static
palavra-chave for removida da classe B
, ela não poderá ser acessada diretamente sem criar uma instância de A
.
public class C {
A a = new A();
A.B ab = a. new B();
}
Mas não podemos ter static
membros dentro de uma non-static
classe interna.