ホームページ  >  記事  >  Java  >  静的変数への静的メソッドのアクセシビリティをチェックする Java プログラム

静的変数への静的メソッドのアクセシビリティをチェックする Java プログラム

WBOY
WBOY転載
2023-08-26 17:25:06895ブラウズ

###############導入###

Java では、変数とメソッドを静的として定義できます。静的変数または静的メソッドは、そのクラスの個々のオブジェクトではなく、クラス自体に属します。したがって、クラスのオブジェクトを作成しなくても、クラス名を使用して静的変数またはメソッドにアクセスできます。 静的変数への静的メソッドのアクセシビリティをチェックする Java プログラム

このプログラムでは、静的メソッドを介して静的変数のアクセス可能性をチェックする方法を検討します。静的変数を含むクラスと、その変数にアクセスするための静的メソッドを定義します。次に、静的メソッドを呼び出して、静的変数にアクセスできるかどうかを確認します。

###意味### ###静的###

static キーワードは、Java で、そのクラスのオブジェクトを作成せずに複数のクラスからアクセスできるユーティリティ メソッドまたは変数を作成するのに非常に役立ちます。また、クラスのすべてのインスタンスにわたって同じ定数値を維持するためにも使用されます。ただし、静的変数とメソッドを使用すると、スレッドの安全性やテストの困難などの潜在的な問題が発生する可能性があるため、注意して使用する必要があります。

Java における static の主な機能の一部を以下に示します -

静的変数

静的メソッド

    静的ブロック
  • 静的入れ子クラス
  • 静的変数

    - 静的変数は、クラスのすべてのインスタンス間で共有されるクラスレベルの変数です。これはキーワード static を使用して定義され、クラスのロード時に 1 回だけ初期化されます。静的変数にアクセスするには、クラス名の後にドット演算子を付けて使用します。

  • ケース 1: 静的変数を介して静的メソッドにアクセスする
  • public アクセス修飾子を使用して静的メソッドを宣言すると、静的変数を含むクラスを含む他のクラスがそのメソッドにアクセスできます。この場合、静的変数がパブリック アクセス修飾子でも宣言されていれば、静的メソッドを通じて静的変数にアクセスできます。

  • ただし、静的メソッドが private アクセス修飾子を使用して宣言されている場合は、同じクラス内でのみアクセスできます。この場合、public アクセス修飾子を使用して宣言されている場合でも、static メソッドを介して静的変数にアクセスすることはできません。
###方法###

「import」ステートメントを使用して、必要な I/O ライブラリをインポートします。

「Tutorialspoint」という名前の Java クラスを定義します。

int 型の静的変数 "i" を宣言し、値 100 を割り当てます。

  • public、static、void シグネチャを使用して main() メソッドを定義し、「args」という名前の文字列パラメータの配列を受け取ります。

  • main() メソッドで、System.out.println() メソッドを使用して、静的変数 "i" の値をコンソールに表示します。

  • コードを「Tutorialspoint.java」という名前の Java ファイルに保存します。

  • Java コンパイラ (「javac」など) を使用して Java コードをコンパイルします。

  • 「java」コマンドを使用して Java コードを実行します。これにより、「main」メソッドが実行され、「Static Variable = 100」という出力がコンソールに表示されます。

  • ###例### リーリー

    この例では、「Tutorialspoint」という名前のクラスが、整数データ型の「i」という名前の静的変数で定義され、値 100 で初期化されます。

  • このクラスの main メソッドは、public、static、void シグネチャを使用して定義され、「args」という名前の文字列パラメータの配列を受け取ります。
  • main メソッドで、System.out.println() メソッドを使用して静的変数 "i" の値を出力します。出力ステートメントには、静的変数「i」の値と連結された文字列「Static Variable=」が含まれています。

  • このプログラムを実行すると、静的変数 "i" の値が 100 に設定されているため、出力として "Static Variable = 100" が出力されます。
  • ###出力###

    静的変数は、クラス インスタンスではなくクラスに属する変数です。これは、クラスのすべてのインスタンスが静的変数のコピーを 1 つだけ共有することを意味します。つまり、静的変数は、クラスのオブジェクトを作成せずにアクセスできるクラスレベルの変数です。

    リーリー
  • ケース 2: 静的メソッドを介して静的変数にアクセスする

public アクセス修飾子を使用して静的変数を宣言すると、静的メソッドを含むクラスを含む他のクラスがその変数にアクセスできます。この場合、パブリック アクセス修飾子も使用して宣言されていれば、静的メソッドは静的変数にアクセスできます。

ただし、静的変数が private アクセス修飾子を使用して宣言されている場合は、同じクラス内でのみアクセスできます。この場合、パブリック アクセス修飾子を使用して宣言されている場合でも、静的メソッドは静的変数にアクセスできません。

この場合、クラス内で静的変数、静的配列、静的メソッドを宣言しました。静的メソッドは静的変数と静的配列の両方にアクセスするため、メソッドを呼び出すときにクラスのインスタンスを作成する必要はありません。

静的変数と静的配列は両方とも、クラスの特定のインスタンスではなくクラスに属しているため、クラスのインスタンスを作成せずにメソッドが呼び出された場合でも、静的メソッドを介してアクセスできます。

###方法###

新しい Java クラス ファイルを作成し、MyClass.java という名前を付けます。

MyClass.java ファイルで、count という名前のプライベート静的整数変数を宣言し、0 に初期化します。

  • 声明一个名为 myArray 的私有静态整数数组,并使用一些值对其进行初始化,例如 myArray = new int[]{1, 2, 3, 4, 5};

  • 声明一个名为 myStaticMethod() 的公共静态方法,它执行以下操作 -

    • 将 count 的值增加 1。

    • 使用 System.out.println() 将 count 的值打印到控制台。

    • 循环遍历 myArray 数组并使用 System.out.println() 将每个元素打印到控制台。

  • 保存 MyClass.java 文件。

  • 示例

    public class MyClass {
       private static int count = 0;
       private static int[] myArray = new int[]{1, 2, 3, 4, 5};
           
       public static void myStaticMethod() {
          count++;
    
          System.out.println("Count: " + count);
                  
          for (int i = 0; i < myArray.length; i++) {
             System.out.println(myArray[i]);
          }
       }
    }
    
    • 创建一个新的 Java 类文件并将其命名为 Main.java。

    • 在 Main.java 文件中,添加 main() 方法。

    • 在 main() 方法中,使用类名称后跟方法名称和括号来调用 MyClass 类的 myStaticMethod() 方法,例如 MyClass.myStaticMethod();。

    • 保存 Main.java 文件。

    public class Main {
       public static void main(String[] args) {
          MyClass.myStaticMethod();
       }
    }
    
    • 通过在命令提示符或终端中运行命令 javac MyClass.java Main.java 来编译 MyClass.java 和 Main.java 文件。

    • 通过在命令提示符或终端中运行命令 java Main 来运行程序。

    在此示例中,我们有一个 MyClass 类,其中包含静态变量 count 和静态数组 myArray,以及静态方法 myStaticMethod()。 myStaticMethod() 方法将 count 的值加 1,将 count 的值打印到控制台,然后循环遍历 myArray 数组并将每个元素打印到控制台。

    输出

    在 Main 类中,我们通过使用类名后跟方法名和括号来调用 MyClass 类本身(而不是该类的任何实例)上的 myStaticMethod() 方法。此方法调用将执行 myStaticMethod() 方法并将以下内容输出到控制台 -

    Count: 1
    1
    2
    3
    4
    5
    

    结论

    • 在 Java 中,静态变量和静态方法与类本身相关联,而不是与类的任何特定实例相关联。这意味着静态方法可以直接访问静态变量,只要该变量与该方法在同一个类中定义即可。

    以上が静的変数への静的メソッドのアクセシビリティをチェックする Java プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。