繁体   English   中英

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

[英]Creating an object with a size to use with another class 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 Database(int length){
    int _size = length;
    }

    String[] list = new String[length];
...
}

但是它说找不到_size,我也不知道为什么。

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

任何帮助是极大的赞赏

它找不到_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];
}

这是因为构造函数参数的范围仅限于构造函数本身-您不能在初始化程序中使用它们。 您也不能使用_size ,因为它将在初始化程序运行时设置为零。

请注意,您可以摆脱_size ,因为您始终可以通过访问list.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];
  }
  ...
}

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

public class Database{

    private int length;
    String[] list;

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


...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM