为什么最终变量在Java的main方法中不需要初始化?
在Java中,final是可用于字段类和方法的访问修饰符。
当一个方法为final时,它不能被覆盖。
当变量为最终变量时,其值无法进一步修改。
当类结束时,无法扩展。
无需初始化即可声明最终变量
如果将变量声明为final,则必须在构造函数结束之前对其进行初始化。如果不这样做,则会生成编译时错误。
示例
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 constructorprivate final String name;
^
Student.java:4: error: variable age not initialized in the default constructor
private final int age;
^
2 errors
声明最终变量而不初始化
通常,声明局部变量后,需要在首次使用它之前对其进行初始化。如果尝试不进行初始化就使用它,则会收到错误消息。
但是,可以在不使用初始化的情况下声明局部变量final而不进行初始化。
例1
在下面的Java程序中,我们将局部变量声明为final。由于我们没有使用它,因此可以毫无错误地进行编译。
public class Student {public static void main(String args[]) {
final String name;
}
}
但是,如果您尝试使用它,它将产生一个错误-
例2
在下面的Java程序中,我们将局部变量声明为final并使用它
public class Student {public static void main(String args[]) {
final String name;
System.out.println(name);
}
}
编译时错误
在编译时,上述程序会产生以下错误-
Student.java:4: error: variable name might not have been initialized System.out.println(name);^
1 error
以上是 为什么最终变量在Java的main方法中不需要初始化? 的全部内容, 来源链接: utcz.com/z/341001.html