Ref:Cannot reference "X" before supertype constructor has been called, where x is a final variable
class ArrayFunctions {
//public Integer[] arrayTemplate;
private static Scanner scanner = new Scanner(System.in);
ArrayFunctions(int k){
Integer[] arrayTemplate = new Integer[k] ;
}
.
.
.
public class ArrayFunctionsImplementation{
public static void main(String[] args) {
ArrayFunctions newArray = new ArrayFunctions(5);
newArray.getIntegers(newArray.arrayTemplate);
newArray.printIntegers(newArray.arrayTemplate);
newArray.sortArray(newArray.arrayTemplate);
newArray.printIntegers(newArray.arrayTemplate);
}
}
}
如果我使用声明// public Integer [] arrayTemplate;当前已被注释掉,我可以在公共类中访问变量“ arrayTemplate”。
但是,如果我按照下面的代码通过调用构造函数来声明变量,则无法在任何地方访问它。如果我理解正确,那么两种方法都可以声明变量,并且在我尝试访问它时,该对象已经创建。
PS:我将Integer类用于实验,而不是使用普通的int
欢呼
答案 0 :(得分:0)
您当前的代码声明了urlencode
构造函数的变量,因此,该变量只能在构造函数中访问。
您的注释代码声明了train-image
类的成员,然后可以从该类的任何位置(或自从您将其制成ArrayFunctions
以来的其他位置)进行访问。