[英]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.