You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java健身应用类与方法实现相关技术问询

Hey there! No worries at all about your English—we're all here to help, and it's awesome you're diving into building a fitness app for your university course. Let's work through this together.

First, let's clarify your original context and code snippet:

您好,这是我首次在此发帖,英语并非我的母语,若我的问题或表述有不当之处,还望谅解。我正在完成大学课程要求的健身应用开发任务(该应用后续会进行大幅扩展),目前需创建相关类与方法,已尽可能完成部分内容,示例代码如下:

public class Trainingsession { 
    private int workoutTime; 
    private int date; 
    private i...
完善你的TrainingSession类建议

First, let's fix some basic Java naming conventions (class names use PascalCase, so TrainingSession instead of Trainingsession), then build out a complete, extensible class structure that fits typical fitness app needs:

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;

// Follow Java naming convention: PascalCase for class names
public class TrainingSession {
    // Use more descriptive property names
    private int workoutDurationMinutes;
    // Replace int with LocalDate for safe, readable date handling
    private LocalDate sessionDate;
    // Assume you intended a list of exercises (common for training sessions)
    private List<Exercise> exercises;

    // Constructor to initialize core properties
    public TrainingSession(int workoutDurationMinutes, LocalDate sessionDate) {
        this.workoutDurationMinutes = workoutDurationMinutes;
        this.sessionDate = sessionDate;
        this.exercises = new ArrayList<>();
    }

    // Add an exercise to the session
    public void addExercise(Exercise exercise) {
        if (exercise != null) {
            exercises.add(exercise);
        }
    }

    // Remove a specific exercise from the session
    public boolean removeExercise(Exercise exercise) {
        return exercises.remove(exercise);
    }

    // Calculate total calories burned in the session
    public int calculateTotalCaloriesBurned() {
        return exercises.stream()
                .mapToInt(Exercise::getCaloriesBurned)
                .sum();
    }

    // Getters and Setters with proper encapsulation
    public int getWorkoutDurationMinutes() {
        return workoutDurationMinutes;
    }

    public void setWorkoutDurationMinutes(int workoutDurationMinutes) {
        this.workoutDurationMinutes = workoutDurationMinutes;
    }

    public LocalDate getSessionDate() {
        return sessionDate;
    }

    public void setSessionDate(LocalDate sessionDate) {
        this.sessionDate = sessionDate;
    }

    // Return an unmodifiable list to protect internal data
    public List<Exercise> getExercises() {
        return List.copyOf(exercises);
    }
}

// Companion Exercise class to support the TrainingSession
class Exercise {
    private String name;
    private int sets;
    private int reps;
    private int caloriesBurned;

    public Exercise(String name, int sets, int reps, int caloriesBurned) {
        this.name = name;
        this.sets = sets;
        this.reps = reps;
        this.caloriesBurned = caloriesBurned;
    }

    // Getters for exercise properties
    public String getName() {
        return name;
    }

    public int getSets() {
        return sets;
    }

    public int getReps() {
        return reps;
    }

    public int getCaloriesBurned() {
        return caloriesBurned;
    }
}

Key Improvements Explained

  • Naming Standards: Clear, descriptive names make your code easier to read and maintain as you expand the app.
  • Safe Date Handling: LocalDate avoids messy int-based date logic (like dealing with month/day/year formatting errors) and integrates well with Java's date APIs for future features (e.g., tracking weekly training trends).
  • Encapsulation: The exercise list is protected—external code can only modify it through addExercise/removeExercise, and we return an unmodifiable copy to prevent accidental data changes.
  • Extensible Methods: calculateTotalCaloriesBurned() adds immediate business value and sets a pattern for other features you might need later (like tracking average reps per exercise).

If your original private i... was meant to be a different property (not a list of exercises), or if you have specific features you need to implement next, just share more details and I can adjust this further!

内容的提问来源于stack exchange,提问作者dbljn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:53:29