(Java新手)实例化未知数量的对象

时间:2009-11-28 22:59:13

标签: java oop

Java / OO新手问题:

main实例化Track类。现在我希望该对象 - track1 - 实例化许多Clip个对象,其数量在运行时才会被知道。在Track课程内,我可以像这样制作一个新的Clip

Clip clip1 = new Clip(); // this is track1.clip1 from main

但是当我想根据用户输入添加更多剪辑时,我该怎么做?来自main,类似于:

Clip track1.clipX = new Clip();

当我不知道会有多少对象时,如何命名和引用Clip个对象?

2 个答案:

答案 0 :(得分:7)

您可以使用Collection(如List或Set)来保存多个Clip对象:

int numberOfClips = 10;
List<Clip> clips = new ArrayList<Clip>();
for (int i = 0; i < numberOfClips; i++) {
    Clip clip = new Clip();
    clips.add(clip);
}

这会将10个Clip对象添加到数组clips。您可以根据用户的输入设置numberOfClips,而不是硬编码为10。

The List Java docs page描述了您可以在列表中调用的所有方法,以便向您展示如何获取列表中的项目,从列表中删除项目等。

答案 1 :(得分:3)

为什么不使用List来保存Track中的剪辑?

public class Track {
    ...
    List<Clip> clips;

    void addClip(Clip clip) {
        ...
    }
}

Clip

之类的东西
public class Clip {
    private int index;
    private String name;
    ...
}

来自main

Track track = new Track();
Clip aClip = new Clip(1, "clip name");
track.addClip(aClip);
Clip anotherClip = new Clip(2, "another name");
track.addClip(anotherClip);
...