我在理解两个小任务时遇到了一些问题。我尽量具体,但我必须翻译德语中的所有内容,所以请记住这一点。任务是编写一种训练游戏"你可以在哪里建立培训课程等。 我的第一个任务是实现一个充满三种不同方法的接口:
我们必须实现一个新的类TrainingsessionWithGoal
,你使用超类Trainingsession
的构造函数,但你必须添加caloryGoal,我不知道,我怎么能从界面实现它(我确信,我们必须使用set方法实现它。我目前的代码是:
public TrainingsessionWithGoal(int trainingtime, Fitnessdevice fitnessdevice, int day, int month, int year, int hh, int mm, int caloryGoal) {
super(trainingtime, fitnessdevice, day, month, year, hh, mm);
this.caloryGoal = caloryGoal;
}
这完全有效,但我很确定,我实现caloryGoal的方式不正确,因为我从不使用界面中的set-method。有没有人对此有所了解?
在另一个任务中,我们必须创建一个新的类TrainingProgramm
,在其中我们实现一个arraylist,它充满了类Trainingsession
的不同对象和新类TrainingsessionWithGoal
)在那里我完全不知道如何处理。我搜索了一切,但找不到能帮助我的东西。
这是我到目前为止所做的:
private ArrayList <Objects> list = new ArrayList <Objects> ();
public TrainingProgramm (String programmName, ArrayList<Objects> list) {
this.programmName = programmName;
this.list = list;
}
但这显然不起作用。如果有人能以正确的方式引导我,那将是非常有帮助的。
答案 0 :(得分:1)
根据Lino的建议,您可以更改ArrayList<Object> to ArrayList<? extends Trainingsession>
。更好的是你使用你的(但命名的)接口。
并且字段的类型和方法的参数应该是List,而不是ArrayList。那些应该被正确命名 - 而不是列表给他们更多的语义名称。那样你会......像这样:
private List<YourInterface> sessions = new ArrayList <YourInterface> ();
public TrainingProgramm (String programmName, List<TrainingSessionInterface> sessions) { ... }