Java静态和非静态空白final变量

静态变量:使用关键字“ static”声明的变量,也称为类变量。它们在构造函数内部或类函数外部定义。当变量是静态的时,该变量将在该类的所有对象之间共享,而与创建的对象数量无关。

static关键字与变量一起使用时的工作方式 -

示例

public class Demo{
   String name;
   static String designation;
   public void display_data(){
      System.out.println("名称: " + name);
      System.out.println("该小组成员的名称为 : " + designation);
   }
   public static void main(String s[]){
      Demo.designation = "Intern";
      Demo my_obj = new Demo();
      my_obj.name = "Joe";
      Demo my_obj_2 = new Demo();
      my_obj_2.name = "Joanna";
      my_obj.display_data();
      my_obj_2.display_data();
      my_obj.designation = "Senior dev";
      System.out.println("\n更改后,数据为 :\n");
      my_obj.display_data();
      my_obj_2.display_data();
   }
}

输出结果

名称: Joe
该小组成员的名称为 : Intern
名称: Joanna
该小组成员的名称为 : Intern
更改后,数据为 :
名称: Joe
该小组成员的名称为 : Senior dev
名称: Joanna
该小组成员的名称为 : Senior dev

名为Demo的类包含变量和用于显示类变量的名为display_data的函数。在main函数中,创建类的一个实例,并为对象变量分配一个名称和指定。它会被显示出来,然后创建另一个对象,同样的操作也会完成。数据显示在控制台上。这些变化反映在这里。

静态final空白变量 - 与空白final变量以及关键字static的定义相同,这意味着只能在静态代码块中对其进行初始化。

空白final变量 - 顾名思义,没有赋值给它的final变量称为空白final变量。它只能在构造函数中初始化,如果不初始化空白的final变量将导致编译错误。

空白final变量的工作方式 -

示例

public class Demo{
   private static final int val_1;
   private final int val_2;
   static{ val_1 = 1;
   }
   Demo(int val_3){
      val_2 = val_3;
   }
   public static void main(String s[]){
      Demo obj_1 = new Demo(95);
      Demo obj_2 = new Demo(99);
      System.out.println("第一个变量的值为 : ");
      System.out.println(Demo.val_1);
      System.out.println("使用对象访问的第一个变量的值 : ");
      System.out.println(obj_1.val_2);
   }
}

输出结果

第一个变量的值为 :
1
使用对象访问的第一个变量的值 :
95

一个名为Demo的类包含变量和一个名为“ Demo”的构造函数,该构造函数用于将一个值分配给另一个类变量。在main函数中,将创建该类的两个实例,并将其值显示在控制台上。