English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Como criar uma classe estática Object sem referenciar a classe externa no Java?

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.

Exemplo

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

Referência de membro estático no mesmo classe

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.

Exemplo

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

Classe Interna

No Java, você pode incluir classes dentro de classes, que são chamadas de classes internas.

Sintaxe

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

Exemplo

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.

Exemplo

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
Você pode gostar também