什么是空白最终变量?什么是Java中的静态空白最终变量?

静态变量-静态变量也称为类变量。您可以使用关键字声明一个静态变量。一旦声明了一个静态变量,则无论在该类中创建了多少个对象,在类中都只有一个副本。

public static int num = 39;

实例变量-这些变量属于类的实例(对象)。这些在类内但在方法外声明。这些在实例化类时初始化。可以从该特定类的任何方法,构造函数或块中访问它们。

您必须使用对象访问实例变量。也就是说,要访问实例变量,您需要创建该类的对象,并使用该对象,您需要访问这些变量。

final-声明变量final后,您将无法为它重新赋值。

空白变量

没有初始化的最终变量称为空白最终变量。与实例变量一样,最终变量将不会使用默认值初始化。因此,在声明最终变量后必须初始化它们

但是,如果您尝试在代码中使用空变量,则会生成编译时错误。

示例

在下面的Java程序中,Student类包含两个最终变量name和age,并且它们尚未初始化。

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("Age of the Student: "+this.age);

   }

   public static void main(String args[]) {

      new Student().display();

   }

}

编译时错误

在编译时,该程序会产生以下错误。

Student.java:3: error: variable name not initialized in the default constructor

   private final String name;

                        ^

Student.java:4: error: variable age not initialized in the default constructor

   private final int age;

                     ^

2 errors

要解决此问题,您需要将声明的最终变量初始化为-

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("Age of the Student: "+this.age );

   }

   public static void main(String args[]) {

      new Student().display();

   }

}

输出结果

Name of the Student: Raju

Age of the Student: 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("value of the constant: "+Data.num);

   }

}

编译时错误

ConstantsExample.java:4: error: cannot assign a value to final variable num

   num = i;

   ^

1 error

示例

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

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

class Data{

   static final int num;

   static{

      num = 1000;

   }

}

public class ConstantsExample {

   public static void main(String args[]) {

      System.out.println("value of the constant: "+Data.num);

   }

}

输出结果

value of the constant: 1000

以上是 什么是空白最终变量?什么是Java中的静态空白最终变量? 的全部内容, 来源链接: utcz.com/z/347160.html

回到顶部