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

Por que o método main da classe java não pode usar o operador this?

Métodos estáticos pertencem à classe, eles serão carregados na memória com a classe. Você pode chamá-los sem criar um objeto (usando o nome da classe como referência).

exemplo

public class Sample{
   static int num = 50;
   public static void demo(){
      System.out.println("Conteúdo do método estático");
   }
   public static void main(String args[]){
      Sample.demo();
   }
}

Resultados de saída

Conteúdo do método estático

O palpite 'this' é usado como referência para a instância. Como os métodos estáticos não pertencem a nenhuma instância, não podem usar a referência 'this' em métodos estáticos. Se ainda assim, tente fazer assim, isso gerará um erro de compilação.

E o método main é estático, portanto, você não pode usar 'this' no método main.

exemplo

public class Sample{
   int num = 50;
   public static void main(String args[]){
      System.out.println("Conteúdo do método main"+this.num);
   }
}

erro de compilação

Sample.java:4: erro: não-variável estática this não pode ser referenciada a partir de um contexto estático
   System.out.println("Conteúdo do método principal"+this.num);
                                                    ^
1 erro

Você pode gostar também