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

Was ist ein leeres Endvariablen? Was ist eine statische leere Endvariablen in Java?

Statische Variablen-Statische Variablen werden auch als Klassenvariablen bezeichnet. Sie können eine statische Variable mit einem Schlüsselwort deklarieren. Sobald eine statische Variable deklariert wurde, gibt es in der Klasse nur eine Kopie, unabhängig davon, wie viele Objekte in der Klasse erstellt wurden.

public static int num =; 39;

Instanzvariablen-Diese Variablen gehören zum Klassen-Instanz (Objekt). Diese werden innerhalb der Klasse, aber außerhalb von Methoden deklariert. Diese werden beim Instanziieren der Klasse initialisiert. Sie können von jedem bestimmten Methoden, Konstruktor oder Block der Klasse aufgerufen werden.

Sie müssen die Instanzvariablen über ein Objekt zugreifen. Das bedeutet, dass Sie ein Objekt der Klasse erstellen müssen, um auf diese Variablen zuzugreifen. Und um auf diese Variablen zuzugreifen, müssen Sie das Objekt verwenden.

final-Nach der Deklaration von Variablen final können Sie ihnen keine neuen Werte zuweisen.

leere Variablen

Nicht initialisierte finale Variablen werden als leere finale Variablen bezeichnet. Wie Instanzvariablen werden finale Variablen nicht mit Standardwerten initialisiert. DaherNach der Deklaration von finalen Variablen müssen diese initialisiert werden.

Wenn Sie jedoch versuchen, leere Variablen im Code zu verwenden, wird ein Kompilierungsfehler generiert.

示例

In der folgenden Java-Programm enthält die Klasse Student zwei finale Variablen name und age, und sie sind noch nicht initialisiert.

public class Student {
   public final String name;
   public final int age;
   public void display(){
      System.out.println("Name of the Student: ");+this.name);
      System.out.println("学生的年龄: ")}+this.age);
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

编译时错误

Bei der Kompilierung wird das Programm folgende Fehler erzeugen.

Student.java:3: Fehler: Variable name wurde im Standardkonstruktor nicht initialisiert
   private final String name;
                        ^
Student.java:4: Fehler: Variable age wurde im Standardkonstruktor nicht initialisiert
   private final int age;
                     ^
2 Fehler

Lösung

Um dieses Problem zu lösen, müssen Sie die deklarierten finalen Variablen initialisieren.-

public class Student {
   public final String name;
   public final int age;
   public Student(){
      this.name = "Raju";
      this.age =; 20;
   }
   public void display(){
      System.out.println("Name of the Student: ");+this.name );
      System.out.println("学生的年龄: ")}+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

输出结果

学生的姓名:Raju
学生的年龄: 20

静态空白最终变量

同样地,如果您声明了一个静态变量final而没有对其进行初始化,则将其视为静态最终变量。

当变量被声明为静态变量和最终变量时,您只能在静态块中对其进行初始化,如果您尝试在其他位置对其进行初始化,则编译器会假定您正在尝试将其值重新分配给它并生成编译时错误-

示例

class Data{
   static final int num;
   Data(int i){
      num = i;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("常量的值: ");+Data.num);
   }
}

编译时错误

ConstantsExample.java:4: 错误:不能向最终变量num分配值
   num = i;
   ^
1 错误

示例

因此,必须在静态块中初始化静态最终变量。

为了使上述程序正常运行,您需要将静态块中的最终静态变量初始化为-

class Data{
   static final int num;
   static{
      num = 1000;
   }
}
public class ConstantsExample {
   public static void main(String args[]) {
      System.out.println("常量的值: ");+Data.num);
   }
}

输出结果

常量的值: 1000
Vielleicht gefällt dir auch