什么阻止我使用我创建的对象数组?

时间:2018-04-30 17:57:29

标签: java

我有一个名为Song的工作班,由两个字符串组成,一个歌曲标题和歌曲艺术家的名字。我能够创建一个“TopTen”对象,但每当我尝试在TopTen类中使用数组“arr”的名称时,我都会收到错误。如果有人能解释为什么我会因为这个简单的问题而收到错误,那将非常感激。

public class TopTen {

    private Song[] arr;


    public TopTen()
    {
        Song[] arr = new Song[10];
    }

    public int findLength()
    {
        int length = arr.length;
        return length;
    }
}

2 个答案:

答案 0 :(得分:5)

Java的范围不是动态的,因此方法(或构造函数)中定义的任何变量都是该方法(或构造函数)的本地变量。您实际上并没有初始化您在课程中定义的数组'定义:

public TopTen()
{
    Song[] arr = new Song[10];
}

应该是:

public TopTen() {
    arr = new Song[10];
}

答案 1 :(得分:1)

public TopTen() { Song[] arr = new Song[10]; }

这里,arr变量是构造函数TopTen的局部变量,make arr = new Song [10];