当我在界面中声明变量使其变为public class AnalysisAssignmentMod
{
// fill the contents of the array passed as parameter at random
public static void fillArray(int array[])
{
Random rnd = new Random();
for(int i =0; i < array.length; i++)
{
array[i] = rnd.nextInt(Integer.MAX_VALUE);
}
}
// returns a new array with a copy of each of the values from the array passed as parameter
public static int[] copyArray(int[] array)
{
int array1[] = new int[array.length];
for(int i = 0 ; i < array.length; i++)
{
array1[i] = array[i];
}
return array1;
}
public static void main(String[] args){
int[] mainArray = new int[10];
int[] nextArray = new int[10];
fillArray(mainArray);
nextArray = copyArray(mainArray);
System.out.println(Arrays.toString(mainArray));
System.out.println(Arrays.toString(nextArray));
}
}
时,我如何能够在班级中更改public static final
的值?
a
答案 0 :(得分:0)
你是shadowing变量。根据链接的维基百科条目,
在computer programming中,当在某个scope(决策块,方法或内部类)中声明的变量与声明的变量具有相同的名称时,会发生变量阴影在外部范围内。
在您的示例中,您正在创建名为a
的新变量。它与界面中声明的a
无关。
System.out.println(((xyz) new Test2()).a);
仍会输出1
。