用Java创建类和方法

时间:2018-04-30 20:50:18

标签: java class methods

这是我在这里发表的第一篇文章,所以如果没有人会因为我的问题而生气,我很高兴,并希望因为我的英语...这不是我的母语:D

问题: 对于我在大学的课程,我必须编写健身应用程序(将来会变得更大)。现在,我必须设置一些我已经做过的类和方法,尽我所能。这是一个例子:

public class Trainingsession {

    private int workoutTime;
    private int date;
    private int startingtime;
    private Fitnessequipment fitnessequipment;
    private int neededWorkoutTime;


    public Trainingsession(int workoutTime, int date, int startingtime, Fitnessequipment fitnessequipment) {
        this.workoutTime = workoutTime;
        this.date = date;
        this.startingtime = startingtime;
    }

    public boolean goalReached (int caloryGoal) {
        return (fitnessequipment.caloryConsumption(workoutTime) >= caloryGoal))
    }

    // ...

}

当我设置方法goalReached时,我是否必须首先设置caloryGoal以及date,{{1}等其他属性等等? 我的问题是,给出了一些属性,但我不知道,如果我只是通过查看方法来添加其他属性......

3 个答案:

答案 0 :(得分:0)

作为对您问题的一般回答:

caloryGoal是一个参数,它不需要设置"它由方法的调用者提供。

您需要确保提供fitnessequipment.caloryConsumption所需的所有内容(例如Fitnessequipment处于有效状态),以使该方法有效。

根据经验,不允许创建一个在调用其方法时会导致RuntimeExceptions的对象,这是一个好的做法。让自己处于使用您没有编写API的人的位置,除非他们在构造函数中需要,否则他们不会知道哪些字段是强制性的。

答案 1 :(得分:0)

我希望我不会误解你的问题,但这里有:

caloryGoal是由调用goalReached()的任何内容传入的参数,因此caloryGoal不是你需要在构造函数中初始化的东西。如果在调用构造函数后需要指定的对象中有值(如果在实例化后了解该值应该是什么),则可以使用setter方法。这是一个例子:

public void setWorkoutTime(int newWorkoutTime) {
    workoutTime = newWorkoutTime;
}

调用此方法后,workoutTime将包含您传入newWorkoutTime的内容的值。

答案 2 :(得分:0)

有点不清楚您描述的功能的目的是什么。 如果我理解正确,那么goalReached是一个接收数字的函数,如果caloryGoal> =在此会话中烧掉的卡路里(此实例),则返回true。 因此它应该看起来像这样:

public boolean goalReached (int caloryGoal) {
    return (this.caloryConsumption(workoutTime) >= caloryGoal))
}

当caloryConsumption将是一个返回每个会话燃烧的实例卡路里的函数。为此,我应该添加一个名为CaloriesPerMinute的新文件,它将指示锻炼每分钟燃烧多少卡路里并更新构造函数。然后在CaloriesPerMinute中我会添加计算。 基本上你需要知道你想要什么。也许写合同会对你有帮助。