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

Javaの外部クラスを参照せずに静的クラスObjectを作成する方法はどうですか?

静态成员(メソッド)/変数(フィールド)はそのクラスに属し、そのクラスとともにメモリにロードされます。オブジェクトを作成しなくても呼び出すことができます。(クラス名を使用して参照)。クラス全体で静态フィールドのコピーが1つだけあり、つまり、静态フィールドの値はすべてのオブジェクトで同じです。staticキーワードを使用して静态フィールドを定義できます。

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();
   }
}

出力結果

Value of num in the main method 50
demoメソッドでのnumの値 50

引用同一类中的静态成员

如果要引用一个类本身的静态成员(在同一类中),则无需引用该类,则可以直接访问静态成员。

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);
   }
}

出力結果

demoメソッドでのnumの値 50

内部クラス

Javaでは、クラス内にクラスを含めることができます。これらは内部クラスと呼ばれます。

文法

public class Outer{
   public class Inner{
   }
}

別のクラスにクラスを持っている場合、それは外部クラスのインスタンスメンバーとして機能します。したがって、内部クラスを静的に宣言すると、その名前を使用してメンバー(内部クラス)にアクセスできます。-

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 =新しいOuter.InnerDemo(); 
      OuterDemo.InnerDemo.my_method();
   }
}

出力結果

200
This is my nested class
200

静态内部クラスの(静态)メンバーを参照しようとするとき、外部クラスの名前を使用する必要はありません。内部クラスの名前のみでメンバーを参照できます。

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();
   }
}

出力結果

200
This is my nested class
200
おすすめ