由于我是Java的初学者,我有很多问题。对于我的大学,我必须编写健身应用程序。我们提供了一些提示,但大部分代码都是由我们创建的。任务的制定有点软弱,因此,我在解决任务时遇到一些问题。但就目前而言,我想告诉你,我必须做些什么。 我必须设置一个具有以下属性的“健身设备”课程:
除了这些属性外,还有一些方法,我必须实现:
我创建了这样的类:
public class Fitness-Equipment {
private String name;
private String type;
private Musclegroupe mousclegroupe;
private int max.trainingduration;
private int burnedcaloriesperhour;
boolean power;
public Fitness-Equipment(String name, String type, Musclegroupe mousclegroupe, int max.trainingduration, int burnedcaloriesperhour) {
this.name = name;
this.type = type;
this.mousclegroupe = mousclegroupe;
this.max.trainingduration = max.trainingduration;
this.burnedcaloriesperhour = burnedcaloriesperhour;
}
//Setter & Getter for all attributes above//
public int calorieconsumption (int trainingduration) {
return (burnedcaloriesperhour = trainingduration * (burnedcaloriesperhour / 60));
}
public boolean supports (String muscle) {
return (muskelgroupe.contains(muscle));
}
public boolean supports (Musclegroupe musclegroupe) {
return (this.musclegroupe.equals(musclegroupe));
}
public boolean needspower () {
return (power = true);
}
}
这是我的实施方式吗?有时我不确定,我是否必须为我的课程添加一些属性,或者方法是否会为我做这些。最大的问题是,任务没有很好地制定,所以我在解决它们时非常不安全。抱歉我的英语,它不是我的母语,代码是用德语写的,所以我不得不翻译它:D
答案 0 :(得分:0)
如果我理解你的问题,那么我会说你走在正确的轨道上。 (但请参阅下面的有关您的代码的一些反馈。)
属性适用于数据值与对象性质相关的事物
方法适用于操作/算法/逻辑对于对象性质的影响
属性只有在分配了特定值后才有意义,通常是在对象实例化时。 (但是,该值肯定会在实例化对象的生命周期内发生变化。)方法在对象实例化之前完全定义(即,它们是为类定义的),并且不会更改。 (虽然,它们的确切输出和效果当然可以根据不同的输入而变化。)
因此,以您的课程为例,burnedcaloriesperhour
之类的内容适合作为属性,因为它是定义特定健身器材的一部分,并且像calorieconsumption()
这样的方法适合作为一种方法,因为计算的逻辑是不变的,并且对于所有健身器材都是相同的。
这有很多细微差别。一些属性迅速变化;某些属性在对象实例化时未定义,并且仅在此方法或该方法被调用后取值; class constants 类似于属性,但对于该类的所有对象具有相同的值;还有更多。但是,你学习Java的一部分将会获得一个不断扩展的概念背景来理解这些细微差别。
我想指出一些关于你的代码的事情:
我不认为max.trainingduration;
将以我认为您想要的方式运作。这就是"属性' trainingduration'属于名为' max'的对象。我想你想要maxTrainingduration
或类似的东西。
代码return (power = true);
将(a)将power
设为true
,(b)始终返回true
。我想你的意思是return (power == true);
代码return (burnedcaloriesperhour = trainingduration * (burnedcaloriesperhour / 60));
每次调用时都会更改burnedcaloriesperhour
的值;我认为你想要的只是返回计算trainingduration * (burnedcaloriesperhour / 60)
。
我不清楚您的代码注释//Setter & Getter for all attributes above//
是否是未显示的setter和getter方法的替代方法,或者是否用于识别其下方的方法作为setter和getter方法。如果它是未显示方法的替身,那很好。如果它是对它下面的方法的评论,我想指出它们实际上不是setter和getter方法。
我希望我已经回答了您的问题并为您提供了一些信心,让您向前迈进。获得自信并加深理解的最佳方式是进行实验。从小开始;编译运行修复,直到你有工作;做出小的渐进式改进;添加输出行以查看正在发生的事情以及发生的情况;花时间尝试假设情景;并反复重复这个循环。你将牢牢掌握阶级结构,以及属性和方法的作用。
Viel Erfolg!