Heim  >  Artikel  >  Java  >  Java-Programm zum Überprüfen der Zugänglichkeit einer statischen Methode auf eine statische Variable

Java-Programm zum Überprüfen der Zugänglichkeit einer statischen Methode auf eine statische Variable

WBOY
WBOYnach vorne
2023-08-26 17:25:06895Durchsuche

Java-Programm zum Überprüfen der Zugänglichkeit einer statischen Methode auf eine statische Variable

Einführung

In Java können wir Variablen und Methoden als statisch definieren. Statische Variablen oder Methoden gehören zur Klasse selbst, nicht zu einzelnen Objekten dieser Klasse. Daher können wir über den Klassennamen auf eine statische Variable oder Methode zugreifen, ohne ein Objekt dieser Klasse zu erstellen.

In diesem Programm werden wir untersuchen, wie wir die Zugänglichkeit statischer Variablen mithilfe statischer Methoden überprüfen können. Wir definieren eine Klasse mit einer statischen Variablen und einer statischen Methode für den Zugriff auf die Variable. Dann rufen wir die statische Methode auf, um zu prüfen, ob sie auf die statische Variable zugreifen kann.

Definition

Statisch

Das Schlüsselwort „static“ ist in Java sehr nützlich, um Hilfsmethoden oder Variablen zu erstellen, auf die von mehreren Klassen aus zugegriffen werden kann, ohne ein Objekt dieser Klasse zu erstellen. Es wird auch verwendet, um über alle Instanzen einer Klasse hinweg denselben konstanten Wert beizubehalten. Die Verwendung statischer Variablen und Methoden kann jedoch potenzielle Probleme wie Thread-Sicherheit und Testschwierigkeiten verursachen und sollte daher mit Vorsicht verwendet werden.

Hier sind einige wichtige Funktionen von Static in Java -

  • Statische Variablen

  • Statische Methoden

  • Statischer Block

  • Statische verschachtelte Klasse

Statische Variablen – Statische Variablen sind Variablen auf Klassenebene, die von allen Instanzen einer Klasse gemeinsam genutzt werden. Es wird mit dem Schlüsselwort static definiert und nur einmal beim Laden der Klasse initialisiert. Verwenden Sie den Klassennamen gefolgt vom Punktoperator, um auf statische Variablen zuzugreifen.

Fall 1: Zugriff auf statische Methode über statische Variable

Wenn Sie eine statische Methode mit dem öffentlichen Zugriffsmodifikator deklarieren, kann jede andere Klasse auf die Methode zugreifen, einschließlich Klassen, die statische Variablen enthalten. In diesem Fall kann über die statische Methode auf die statische Variable zugegriffen werden, wenn sie auch mit dem öffentlichen Zugriffsmodifikator deklariert ist.

Wenn Sie jedoch eine statische Methode mit privatem Zugriffsmodifikator deklarieren, kann nur innerhalb derselben Klasse darauf zugegriffen werden. In diesem Fall kann über die statische Methode nicht auf die statische Variable zugegriffen werden, selbst wenn sie mit dem öffentlichen Zugriffsmodifikator deklariert wurde.

Methode

  • Verwenden Sie die „import“-Anweisung, um die erforderlichen I/O-Bibliotheken zu importieren.

  • Definieren Sie eine Java-Klasse namens „Tutorialspoint“.

  • Deklarieren Sie eine statische Variable „i“ vom Typ int und weisen Sie ihr den Wert 100 zu.

  • Definieren Sie die Methode main() mit öffentlichen, statischen und ungültigen Signaturen und verwenden Sie ein Array von Zeichenfolgenparametern mit dem Namen „args“.

  • Verwenden Sie in der Methode main() die Methode System.out.println(), um den Wert der statischen Variablen „i“ auf der Konsole anzuzeigen.

  • Speichern Sie den Code in einer Java-Datei mit dem Namen „Tutorialspoint.java“.

  • Kompilieren Sie Java-Code mit einem Java-Compiler (z. B. „javac“).

  • Führen Sie den Java-Code mit dem Befehl „java“ aus, der die Methode „main“ ausführt und die Ausgabe „Static Variable = 100“ auf der Konsole anzeigt.

Beispiel

import java.io.*;

public class Tutorialspoint {

   static int i = 100;

   public static void main(String[] args){
      System.out.println("Static Variable = " + i);
   }
}

In diesem Beispiel wird die Klasse „Tutorialspoint“ mit einer statischen Variablen namens „i“ vom Datentyp „Ganzzahl“ definiert und mit dem Wert 100 initialisiert.

Die Hauptmethode dieser Klasse ist mit einer öffentlichen, statischen, ungültigen Signatur definiert und akzeptiert ein Array von Zeichenfolgenparametern mit dem Namen „args“.

Verwenden Sie in der Hauptmethode die Methode System.out.println(), um den Wert der statischen Variablen „i“ zu drucken. Die Ausgabeanweisung enthält eine Zeichenfolge „Static Variable=", verkettet mit dem Wert der statischen Variablen „i".

Wenn dieses Programm ausgeführt wird, wird „Statische Variable = 100“ als Ausgabe ausgegeben, da der Wert der statischen Variablen „i“ auf 100 gesetzt ist.

Ausgabe

Statische Variablen sind Variablen, die zu einer Klasse gehören und nicht zu einer Instanz der Klasse. Dies bedeutet, dass alle Instanzen der Klasse nur eine Kopie der statischen Variablen gemeinsam nutzen. Mit anderen Worten: Statische Variablen sind Variablen auf Klassenebene, auf die zugegriffen werden kann, ohne ein Objekt der Klasse zu erstellen.

Static Variable = 100

Fall 2: Zugriff auf statische Variablen über statische Methoden

Wenn Sie eine statische Variable mit dem öffentlichen Zugriffsmodifikator deklarieren, kann jede andere Klasse auf die Variable zugreifen, einschließlich Klassen, die statische Methoden enthalten. In diesem Fall kann mit der statischen Methode auf die statische Variable zugegriffen werden, wenn sie auch mit dem öffentlichen Zugriffsmodifikator deklariert ist.

Wenn Sie jedoch eine statische Variable mit privatem Zugriffsmodifikator deklarieren, kann nur innerhalb derselben Klasse auf sie zugegriffen werden. In diesem Fall kann die statische Methode nicht auf die statische Variable zugreifen, selbst wenn sie mit dem öffentlichen Zugriffsmodifikator deklariert ist.

In diesem Fall haben wir eine statische Variable, ein statisches Array und eine statische Methode in der Klasse deklariert. Statische Methoden greifen sowohl auf statische Variablen als auch auf statische Arrays zu und es ist nicht erforderlich, beim Aufruf der Methode eine Instanz der Klasse zu erstellen.

Da sowohl statische Variablen als auch statische Arrays zur Klasse und nicht zu einer bestimmten Instanz der Klasse gehören, kann über eine statische Methode auf sie zugegriffen werden, selbst wenn die Methode aufgerufen wird, ohne eine Instanz der Klasse zu erstellen.

Methode

  • Erstellen Sie eine neue Java-Klassendatei und nennen Sie sie MyClass.java.

  • Deklarieren Sie in der Datei MyClass.java eine private statische Ganzzahlvariable mit dem Namen count und initialisieren Sie sie auf 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 中,静态变量和静态方法与类本身相关联,而不是与类的任何特定实例相关联。这意味着静态方法可以直接访问静态变量,只要该变量与该方法在同一个类中定义即可。

Das obige ist der detaillierte Inhalt vonJava-Programm zum Überprüfen der Zugänglichkeit einer statischen Methode auf eine statische Variable. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen