对此非常陌生。我试图从一个单独的类文件中调用一个构造函数方法,该类文件将构成一个数组。我没有发布我正在为作业工作的内容,而是制作了一个更为简单的通用版本。
我期待的是main将调用MakeArray,它将创建一个包含3个整数的数组:[0,1,2]然后main将添加这些术语,唯一的输出将是总数,2。
来自我的主要:
MakeArray trial = new MakeArray()
System.out.println(trial[0] + trial[1] + trial[2]);
来自我的班级文件:
final int CONSTANT = 3;
public MakeArray()
{
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
return demo[];
}
谢谢!
答案 0 :(得分:0)
您似乎不想要MakeArray
的新实例我建议您将其设为实用方法。
来自我的主要:
int[] trial = MakeArray.newArray(3);
System.out.println(trial[0] + ", " + trial[1] + ", "+trial[2]);
将utlity类定义为
enum MakeArray { ;
static int[] newArray(int n) {
int[] demo = new int[n];
for (int i = 0; i < n; i++)
demo[i]=i;
return demo;
}
}
答案 1 :(得分:0)
您无法将MakeArray对象作为数组进行访问。但是你可以创建一个返回所述数组的方法:
class MakeArray {
public static int[] makeArray() {
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++) {
demo[i]=i;
}
return demo;
}
}
然后你可以这样使用它:
int[] trial = MakeArray.makeArray();
System.out.println(trial[0] + trial[1] + trial[2]);
答案 2 :(得分:0)
一种方法是在类中添加一个实例变量及其相应的getter方法:
final int CONSTANT = 3;
int[] demo;
public MakeArray()
{
demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
}
public getArray(){
return demo;
}
现在您可以从main
致电:
MakeArray arr = new MakeArray();
int[] trial = arr.getArray();
System.out.println(trial[0] + trial[1] + trial[2]);
答案 3 :(得分:0)
创建这样的数组是行不通的,因为数组不是普通对象而是特殊对象。 因此,您不能只创建一个与数组相同的对象,而是创建一个静态方法(可以在没有类实例的情况下调用它)并使其返回一个数组,如下所示:
static final int CONSTANT = 3;
public static int[] MakeArray()
{
int[] demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
return demo;
}
在这种情况下,您还必须像我所做的那样使常量变量静态化。 然后你可以像构造函数一样调用它,你只需要在它之前添加它所在的类的名称:
int[] trial = MakeArray.MakeArray();
这当然只有在将此方法放在名为“MakeArray”的类中才有效,否则您必须在点前放置其他内容。
答案 4 :(得分:0)
据我所知,你可能想要这样的事情。
类文件:
final int CONSTANT = 3;
public class MakeArray
{
public int[] demo;
public MakeArray()
{
demo = new int[CONSTANT];
for(int i=0; i<CONSTANT; i++)
{
demo[i]=i;
}
}
}
主要课程:
MakeArray trial = new MakeArray()
System.out.println(trial.demo[0] + trial.demo[1] + trial.demo[2]);