[英]Creating classes and methods in Java
這是我在這里的第一篇文章,所以,如果沒有人因為我的問題而生氣,並希望因為我的英語而生氣,那我會很高興的。這不是我的母語: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
, startingtime
等? 我的問題是,給出了一些屬性,但是我不知道是否只需要通過查看方法來添加其他屬性...
作為對您問題的一般回答:
caloryGoal
是一個參數,不需要“設置”,它由方法的調用者提供。
你需要確保的是,一切都被要求fitnessequipment.caloryConsumption
提供( Fitnessequipment
處於有效狀態,例如),以使該方法的工作。
根據經驗,禁止在調用對象的方法時創建會導致RuntimeExceptions
的對象是一個好習慣。 讓您自己成為一個使用您的API而不編寫它的人,他們不會知道哪些字段是必需的,除非構造函數中需要這些字段。
我希望我不會誤解您的問題,但是這里有:
caloryGoal
是通過調用goalReached()
傳遞的參數,因此不需要在構造函數中初始化caloryGoal。 如果在調用構造函數后需要在對象中指定值(例如,如果您在實例化值之后了解該值),則可以使用setter方法。 這是一個例子:
public void setWorkoutTime(int newWorkoutTime) {
workoutTime = newWorkoutTime;
}
調用此方法后, workoutTime
將具有您作為newWorkoutTime
傳入的值。
不清楚您描述的功能的目的是什么。 如果我理解正確,則GoalReached是一個接收數字並返回true的卡路里函數,該目標在此會話(此實例)中消耗的卡路里> =。 因此,它應該看起來像這樣:
public boolean goalReached (int caloryGoal) {
return (this.caloryConsumption(workoutTime) >= caloryGoal))
}
當caloryConsumption將是一個返回實例的卡路里消耗量的函數。 為此,我應該添加一個名為CaloriesPerMinute的新文件,該文件將指示運動每分鍾消耗多少卡路里並更新構造函數。 然后在CaloriesPerMinute中添加計算。 基本上,您需要知道您想要什么。 也許寫合同會幫助您。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.