Java 从方法中提取属性

Java 从方法中提取属性,java,class,methods,constructor,Java,Class,Methods,Constructor,因为我是Java的初学者,所以我有很多问题。对于我的大学,我必须编写一个健身应用程序。我们有一些技巧,但大部分代码将由我们创建。任务的制定有点松散,因此,我在解决任务时遇到了一些问题。但现在,我想告诉你,我必须做什么。 我必须设置一个具有以下属性的“健身器材”类: 名字 类型 训练有素的肌肉群(另一个班) 最大培训持续时间 每小时燃烧的卡路里 除了这些属性,还有一些方法,我必须实现: 建造师 int卡路里消耗量(int分钟)->返回给定时间内一次培训课程的卡路里消耗量(以分钟为单位) int卡路

因为我是Java的初学者,所以我有很多问题。对于我的大学,我必须编写一个健身应用程序。我们有一些技巧,但大部分代码将由我们创建。任务的制定有点松散,因此,我在解决任务时遇到了一些问题。但现在,我想告诉你,我必须做什么。 我必须设置一个具有以下属性的“健身器材”类:

  • 名字
  • 类型
  • 训练有素的肌肉群(另一个班)
  • 最大培训持续时间
  • 每小时燃烧的卡路里
  • 除了这些属性,还有一些方法,我必须实现:

  • 建造师
  • int卡路里消耗量(int分钟)->返回给定时间内一次培训课程的卡路里消耗量(以分钟为单位)
  • int卡路里消耗量(int小时,int分钟)->返回给定时间(小时和分钟)内一次培训课程的卡路里消耗量
  • 布尔支持(字符串肌肉)->如果设备支持肌肉,则返回true
  • 布尔支持(Musclegroup Musclegroup)->如果设备支持Musclegroup,则返回true
  • 布尔值needspower()->如果设备需要电源,则返回true
  • 我创建了这样的类:

    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

    如果我正确理解你的问题,那么我会说你在正确的轨道上。(但有关您的代码的一些反馈,请参见下文。)

    属性用于数据的值与对象的性质有关的事物

    方法适用于操作/算法/逻辑与对象性质有关的情况

    属性只有在分配了特定值后才有意义,通常是在对象实例化时。(但是,该值肯定会在实例化对象的生命周期内发生变化。)方法在对象实例化之前完全定义(即,它们是为类定义的),并且不会发生变化。(尽管如此,它们的确切输出和效果当然会因输入的不同而有所不同。)

    因此,以您的类为例,像
    burnedcaloriesperhour
    这样的属性是合适的,因为它是定义特定健身设备的一部分,而像
    CarrioConsumption()
    这样的属性是合适的,因为计算的逻辑是不变的,所有健身器材也是如此

    这有很多细微差别。某些属性变化迅速;某些属性在对象实例化时未定义,并且仅在调用此方法或该方法后才具有值;类常量与属性类似,但对于该类的所有对象具有相同的值;还有很多很多。但是,学习Java的一部分将是获得一个不断扩展的概念背景,以理解这些细微差别

    我想指出一些关于您的代码的事情:

  • 我不认为
    max.trainingduration将按我认为您希望的方式工作。这表示“属于名为“max”的对象的属性“trainingduration”。我想您需要
    maxTrainingduration
    或类似的东西

  • 代码
    返回(power=true);
    将(a)设置
    power
    等于
    true
    ,并且(b)总是返回
    true
    。我想你的意思是
    返回(power=true);

  • 代码
    return(burnedcaloriesperhour=trainingduration*(burnedcaloriesperhour/60));
    每次调用时都会更改
    burnedcaloriesperhour
    的值;我想您只需要返回计算值
    trainingduration*(burnedcaloriesperhour/60)

  • 我不清楚您的代码注释//code>//Setter&Getter对于上面的所有属性//是否是未显示的Setter和Getter方法的替代品,或者它是否意味着要将下面的方法标识为Setter和Getter方法。如果它是未显示的方法的替代品,那很好。如果它是关于下面方法的注释我想指出的是,它们实际上并不是setter和getter方法

  • 我希望我已经回答了您的问题,并为您提供了前进的信心。获得信心和加深理解的最佳方法是进行实验。从小处着手;编译运行修复程序,直到您有了工作;进行小的增量改进;添加输出行,以查看正在发生的事情和发生的位置;t花点时间尝试假设情景;并反复重复这个循环。您将牢牢掌握类结构、属性和方法的作用


    Viel Erfolg!

    您是否已经尝试编译代码?Stackoverflow问题询问有关“如何继续”以及代码是否“良好”的建议“否则,会给你带来负面声誉。你现在有通行证,因为你显然是新来的。我建议您在声誉下降之前阅读stackoverflow how to ask页面。Getter&Setter行只声明,我在那里创建了它们,但我不想在stackoverflow中为此编写完整的代码。是的,你和其他人的小费给了我很多帮助!这真的就像每个人说的->边做边学:)