我们可以为Java中的最终数组赋值吗?
数组是一个容器,可以容纳固定数量的项目,这些项目应为同一类型。大多数数据结构都利用数组来实现其算法。以下是理解数组概念的重要术语。
元素-存储在数组中的每个项目称为元素。
索引-数组中元素的每个位置都有一个数字索引,用于标识元素。
数组的大小将在创建时确定。
示例
public class ArrayExample {public static void main(String args[]){
//声明数组
int[] myArray = {233, 783, 453};
//打印数组
for(int i=0; i<myArray.length; i++){
System.out.println(myArray[i]);
}
}
}
输出结果
233783
453
最终变量
如果稍后声明了最终变量,则无法修改或为其分配值。此外,像实例变量一样,最终变量将不会使用默认值初始化。
因此,必须在声明最终变量后初始化它们。
尽管如此,如果您尝试声明未经初始化的最终变量,则会产生编译错误,提示“变量variable_name未在默认构造函数中初始化”。
示例
public class FinalVariables {public static void main(String args[]){
final int j = 10;
j = 220;
}
}
最终数组
但是,在使用数组的情况下,您可以将数组声明为final,并且仍然可以为其重新分配值,而不会产生任何编译时错误。
示例
public class FinalArrays {public static void main(String args[]){
//声明数组
final int[] myArray = {233, 783, 453};
//打印数组
for(int i=0; i<myArray.length; i++){
System.out.println(myArray[i]);
}
//更改数组的值
myArray[0] = 2020;
myArray[1] = 3040;
myArray[2] = 4060;
for(int i=0; i<myArray.length; i++){
System.out.println(myArray[i]);
}
}
}
输出结果
233783
453
2020
3040
4060
其原因与变量不同,数组是对象,并且它们不保存值,而是指向保存值的位置的地址。
对于对象和数组,如果引用变量是最终变量,则它不能指向另一个对象/数组。如果尝试这样做,则会生成编译时错误。
示例
public class FinalArrays {public static void main(String args[]){
//声明数组
final int[] myArray1 = {233, 783, 453};
//打印数组
System.out.println(myArray1);
int[] myArray2 = {233, 783, 453};
myArray2[0] = 2020;
myArray2[1] = 3040;
myArray2[2] = 4060;
myArray1 = myArray2;
}
}
输出结果
编译时错误
inalArrays.java:14: error: cannot assign a value to final variable myArray1myArray1 = myArray2;
^
1 error
以上是 我们可以为Java中的最终数组赋值吗? 的全部内容, 来源链接: utcz.com/z/322420.html