创建一个大小与另一个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);
}
...
}
很抱歉造成混淆,我更新了我的帖子,解释了为什么我需要构造函数之外的数组。这确实有效,谢谢你,我和你在长度方面做了同样的事情,我忘了我不能在构造函数内声明它。很抱歉造成混淆,我更新了我的帖子,解释了为什么我需要构造函数外的数组。
列表
的声明仍然在构造函数外,您可以在数据库
的任何其他方法中引用它。