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函数中,将创建该类的两个实例,并将其值显示在控制台上。