Java - 关于new运算符的方法

时间:2015-03-20 12:46:41

标签: java

好吧,我不确定我是否能做到这一点,但我还是要问这个问题......

我上了Budynek班,构造函数是这样的:

public Budynek(int numerBudynku)
{
    this.id.nrBudynku = numerBudynku;
    this.id.nrPietra = 0;
    this.id.nrPokoju = 0;
}

所以我这样创建它:

Budynek Budynek1 = new Budynek(1);
Budynek Budynek2 = new Budynek(2);

现在我想问一下是否有办法创建一个为我创建新Budynek的方法?让我们说如果我使用switch case,而case 1将是“new new Budynek”

然后我想这个方法做这样的事情

 e.g licznik = 1

Budynek Budynek+licznik(so it will be Budynek1) = new Budynek(licznik)

然后只是licznik = licznik + 1;

可能吗?

2 个答案:

答案 0 :(得分:2)

您可以创建一个列表并将所有内容存储在那里,因为您正在使用budynek+index进行索引

List<Budynek> budynekList = new ArrayList<Budynek>();

budynekList.add(new Budynek(10));
budynekList.add(new Budynek(20));
budynekList.add(new Budynek(400));

budynekList.get(index); // now you have your budynek objects with the given index.

正如已经指出的评论那样,你不能在运行时声明变量。

答案 1 :(得分:0)

无论

enum Budynek {
    BUDYNEK_A,
    BUDYNEK_B,
    BUDYNEK_C;

    public ID id;

    private Budynek() {
        this.id.nrBudynku = 1 + ordinal();
        this.id.nrPietra = 0;
        this.id.nrPokoju = 0;
    }
}

Budynek.BUDY_A.id.nrBudynku

或者你必须去一个阵列:

Budynek[] budyneki = new Budynek[3];
...
budyneki[0].id.nrBudynku
budyneki[1].id.nrBudynku
budyneki[2].id.nrBudynku