gpt4 book ai didi

java - 接口(interface)中的 Setter 和对象到数组中

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:22 25 4
gpt4 key购买 nike

我在理解两个小任务时遇到了一些小问题。我尽量做到具体,但我必须从德语翻译所有内容,所以请记住这一点。任务是编写一种“训练游戏”,您可以在其中建立训练类(class)等。我的第一个任务是实现一个包含三种不同方法的接口(interface):

  • void setCaloryGoal (int caloryGoal) -> 设置卡路里目标
  • int getCaloryGoal -> 返回卡路里目标
  • double getAchievementDegree -> 返回成就度 (burnedcalories/caloryGoal)

然后我们必须实现一个新类 TrainingsessionWithGoal,您可以在其中使用父类(super class) Trainingsession 的构造函数,但您必须添加 caloryGoal,我不知道我该怎么做可以从接口(interface)实现它(我敢肯定,我们必须用设置方法实现它。我当前的代码是这样的:

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 的方式不是正确的方式,因为我从不使用界面中的设置方法。有人对此有想法吗?

在另一个任务中,我们必须创建一个新类 TrainingProgramm,我们在其中实现一个数组列表,其中填充了类 Trainingsession 和新类的不同对象TrainingsessionWithGoal),我完全不知道如何处理。我用谷歌搜索了所有内容,但找不到对我有帮助的东西。

这是我目前所拥有的:

private ArrayList <Objects> list = new ArrayList <Objects> ();

public TrainingProgramm (String programmName, ArrayList<Objects> list) {
this.programmName = programmName;
this.list = list;
}

但这显然行不通。如果有人能指导我正确的方法,那将非常有帮助。

最佳答案

您可以按照 Lino 的建议,更改 ArrayList<Object> to ArrayList<? extends Trainingsession> .更好的是你为此使用你的(无论如何命名)接口(interface)。并且字段的类型和方法的参数应该是一个列表,而不是一个数组列表。那些应该被正确命名 - 而不是列表给他们更多的语义名称。那样你就会有某事。像这样:

private List<YourInterface> sessions = new ArrayList <YourInterface> ();
public TrainingProgramm (String programmName, List<TrainingSessionInterface> sessions) { ... }

关于java - 接口(interface)中的 Setter 和对象到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50564628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com