将Array length设置为传递给Constructor的值

时间:2013-12-06 13:39:57

标签: java arrays variables constructor

我正试图创造这样的东西......

Class WordStore {

    private int size;
    private String words[];

    public WordStore(int n) {
        size=n;
        words[]=new String[size];
    }

    ...
}

所以我可以将单词作为全局变量,能够从类中的任何方法访问它,而不必将其作为参数传递。数组字的长度必须是传递给构造函数的int值,该构造函数从另一个类传递。 它必须是一个数组,而不是ArrayList或任何其他列表。

但是目前它没有编译,我需要进行哪些更正才能允许编译。

3 个答案:

答案 0 :(得分:1)

words[]=new String[size];应该是这样的words=new String[n];

答案 1 :(得分:1)

这应该足够了

private int size;

private String words[];

public WordStore(int n){
     words =new String[n];
}

如果您不需要尺寸为全球

答案 2 :(得分:1)

正如其他回答者所说,你应该替换

带有words[]=new String[size];

words=new String[n];

这是因为[]是变量类型的一部分,而不是它的名称。这种混淆是可以理解的,因为在声明变量时,是否将[]与其余类型或名称放在一起是可选的。因此,通常将数组类型的变量声明为

private String[] words; //type: String[] name: words

而非非标准

private String words[]; //still type: String[] name: words, but less clear

一旦你这样做,一切都变得更加一致,你在使用变量时不会重复String类型,所以你也不要重复[]。

此外,Class应该是class,因为java中的关键字是小写

相关问题