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

Javaのメソッドでは静的変数を宣言できますか?

静的メソッドやブロックはそのクラスに属しており、クラスとともにメモリにロードされます。静的メソッドを呼び出すにはオブジェクトを作成する必要はありません。(クラス名を使用して参照)。

Javaでは「 super 」キーワードを使用することはできません。これは、超クラスオブジェクトへの参照として「super」キーワードが使用されることを意味しており、该方法を呼び出すにはオブジェクトからの呼び出しが必要であり、静的メソッドはそうではありません。

したがって、静的メソッドから「 super ”キーワードが使用されます。

以下のJavaプログラムでは、ThisExampleクラスにはsetterとgetterメソッドおよびインスタンスメソッドを持つクラスが含まれています。display()のプライベート変数名前。mainメソッド(静的メソッド)から、thisキーワードを使ってdisplay()メソッドを呼び出すことを試みました。

class SuperClass{
   protected String name;
}
public class SubClass extends SuperClass {
   private String name;
   public static void setName(String name) {
      super.name = name;
   }
   public void display() {
      System.out.println("name: "+super.name);
   }
   public static void main(String args[]) {
      new SubClass().display();
   }
}

コンパイル時エラー

SubClass.java:7: error: non-static variable super cannot be referenced from a static context
   super.name = name;
   ^
1 エラー
cmd.exeでJava環境変数を設定する方法はどうですか?