English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Membros estáticos (métodos/Variáveis (membros estáticos) pertencem à classe, carregadas ao mesmo tempo que a classe. Você pode chamá-las sem criar um objeto (usando o nome da classe como referência). Existe apenas uma cópia do campo estático em toda a classe, ou seja, o valor do campo estático é o mesmo em todos os objetos. Você pode usar a palavra-chave static para definir um campo estático.
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method ")+ Sample.num); } } public class Demo{ public static void main(String args[]){ System.out.println("Value of num in the main method ")+ Sample.num); Sample.demo(); } }
Resultado de Saída
Value of num in the main method 50 Valor de num no método demo 50
Se precisar referenciar um membro estático de uma classe em si (no mesmo classe), não é necessário referenciar a classe, pode-se acessar diretamente o membro estático.
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method ")+ Sample.num); } public static void main(String args[]){ demo(); System.out.println(num); } }
Resultado de Saída
Valor de num no método demo 50
No Java, você pode incluir classes dentro de classes, que são chamadas de classes internas.
public class Outer{ public class Inner{ } }
Quando você tem uma classe dentro de outra classe, ela apenas atua como um membro de instância da classe externa. Portanto, se você declarar uma classe interna estática, você pode usar seu nome para acessar seus membros (classe interna)-
outer_class_name.inner_class_name.members
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } } public class StaticClassExample{ public static void main(String args[]) { System.out.println(OuterDemo.data); //Outer.InnerDemo = new Outer.InnerDemo(); OuterDemo.InnerDemo.my_method(); } }
Resultado de Saída
200 This is my nested class 200
Se você tentar referenciar o membro (estático) de uma classe interna, você não precisa usar o nome da classe externa e pode usar apenas o nome da classe interna para referenciar o membro.
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } public static void main(String args[]) { System.out.println(data); InnerDemo.my_method(); } }
Resultado de Saída
200 This is my nested class 200