创建一个大小与另一个Java类一起使用的对象

创建一个大小与另一个Java类一起使用的对象,java,Java,我在用这个: public class DatabaseTester{ public static void main (String[] args){ final int length = 10; Database data = new Database(length); ... }} 要在此模式下设置大小,请执行以下操作: public class Database{ private int length = _size; public Databa

我在用这个:

public class DatabaseTester{
    public static void main (String[] args){

    final int length = 10;
    Database data = new Database(length);
...
}}
要在此模式下设置大小,请执行以下操作:

public class Database{

 private int length = _size;

    public Database(int length){
    int _size = length;
    }

    String[] list = new String[length];
...
}
但它说它找不到尺寸,我也不知道为什么

我需要公共数据库(){}之外的数组供其他方法使用


非常感谢任何帮助

它找不到
\u size
,因为该变量未在类的范围内定义

public class Database{

 private int length = _size;

    public Database(int length){
      // this is a local variable, so even if you have this here
      // it is not something the Database class will know about
      int _size = length;
    }

    String[] list = new String[length];
...
}
如果希望数组成为公共字段,可以这样做

public class Database {

    String[] list;

    public Database(int length){
       list =  = new String[length];
    }
}

当必须通过构造函数接受值时,还需要将数组的初始化移到构造函数中,如下所示:

String[] list;
public Database(int length) {
    int _size = length;
    list = new String[length];
}
这是因为构造函数参数的作用域仅限于构造函数本身-不能在初始值设定项中使用它们。您也不能使用
\u size
,因为在初始化程序运行时它将被设置为零

请注意,您可以去掉
\u size
,因为您总是可以通过访问
列表来获得它。length

public class Database {
    String[] list;
    public Database(int length){
        list = new String[length];
    }
    ...
}

您的代码似乎错误且冗余:

public class Database {
  private int length;
  private String[] list;

  public Database(int length) {
    this.length = length;
    this.list = new String[length];
  }
  ...
}

通常,构造函数用于初始化 您应该以这种方式对数据库类进行编码。实例变量

public class Database{

    private int length;
    String[] list;

    public Database(int length){
       this.length = length;
       this.list = new String(length);
    }


...
}

很抱歉造成混淆,我更新了我的帖子,解释了为什么我需要构造函数之外的数组。这确实有效,谢谢你,我和你在长度方面做了同样的事情,我忘了我不能在构造函数内声明它。很抱歉造成混淆,我更新了我的帖子,解释了为什么我需要构造函数外的数组。
列表
的声明仍然在构造函数外,您可以在
数据库
的任何其他方法中引用它。