在单独的构造函数类

时间:2016-02-13 18:00:41

标签: java arrays class constructor

对此非常陌生。我试图从一个单独的类文件中调用一个构造函数方法,该类文件将构成一个数组。我没有发布我正在为作业工作的内容,而是制作了一个更为简单的通用版本。

我期待的是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[];   
}

谢谢!

5 个答案:

答案 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]);