在Java中创建类和方法
这是我在这里的第一篇帖子,所以如果没有人会因为我的问题而生气,希望是因为我的英语…这不是我的母语:D 对该问题: 对于我在大学的课程,我必须编写一个健身应用程序(它在未来会变得更大)。现在,我必须尽可能地设置一些类和方法,我已经这样做了。以下是一个例子:在Java中创建类和方法,java,class,methods,Java,Class,Methods,这是我在这里的第一篇帖子,所以如果没有人会因为我的问题而生气,希望是因为我的英语…这不是我的母语:D 对该问题: 对于我在大学的课程,我必须编写一个健身应用程序(它在未来会变得更大)。现在,我必须尽可能地设置一些类和方法,我已经这样做了。以下是一个例子: public class Trainingsession { private int workoutTime; private int date; private int startingtime; priva
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))
}
// ...
}
public void setWorkoutTime(int newWorkoutTime) {
workoutTime = newWorkoutTime;
}
当我设置方法goalReached
时,我是否必须首先设置caloryGoal
,以及其他属性,如date
,startingtime
等。?
我的问题是,有些属性是给定的,但我不知道,如果我必须通过查看方法来添加其他属性…作为对您问题的一般回答:
caloryGoal
是一个参数,不需要“设置”,它由方法的调用者提供
您需要确保提供了fitnessequipment.calorycommunition
所需的一切(例如,fitnessequipment
处于有效状态),以使该方法正常工作
根据经验,最好不要创建在调用其方法时会导致运行时异常的对象。如果有人在使用你的API时没有编写API,他们就不会知道哪些字段是必填字段,除非构造函数中需要这些字段。我希望我没有误解你的问题,但下面是:
caloryGoal
是由调用的对象传入的参数goalReached()
,因此caloryGoal不需要在构造函数中初始化。如果在调用构造函数后需要指定对象中的值(例如,如果在实例化该值后了解该值应该是什么),则可以使用setter方法。下面是一个例子:
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))
}
// ...
}
public void setWorkoutTime(int newWorkoutTime) {
workoutTime = newWorkoutTime;
}
调用此方法后,
workoutTime
将具有作为newWorkoutTime
传入的值。您描述的函数的用途有点不清楚。
如果我理解正确,那么goalReached是一个函数,它接收一个数字并返回true iff caloryGoal>=在这个会话(本实例)中燃烧的卡路里。
因此,它应该看起来有点像这样:
public boolean goalReached (int caloryGoal) {
return (this.caloryConsumption(workoutTime) >= caloryGoal))
}
当CaloryConsument将是一个函数时,它将返回每个会话消耗的卡路里的实例。为此,我添加了一个名为“卡路里许可”的新字段,该字段将指示运动每分钟燃烧多少卡路里,并更新构造器。然后在热量许可证中,我会加上计算。
基本上你需要知道你想要什么。也许写合同会对你有所帮助。对不起,我不明白。调用goalReached的任何方法都会传入caloryGoal值。但为什么是这个。caloryComsumption?caloryConsumption是另一个类中的一个属性,使用“fitnessequipment.caloryConsumption”我可以访问该属性,对吗?我不知道您的项目中还有更多的类。但是当你调用fitnessequipment.caloryConsumption(workoutTime)时,workoutTime是一个参数,而不是一个文件名,所以我相信这是正确的语法:fitnessequipment.caloryConsumption(this.workoutTime)