首页 > 解决方案 > 是什么阻止我使用我创建的对象数组?

问题描述

我有一个名为 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;
    }
}

标签: java

解决方案


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

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

应该:

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

推荐阅读