【问题标题】:Getting access to an attribute of another class访问另一个类的属性
【发布时间】:2018-05-02 17:12:37
【问题描述】:

我有两个班级:

在A类里面,我有一个方法,需要B类的一个属性(trainingDuration):

Class A {
     public int caloryConsumption (int minutes) {
       return ((caloriesBurnedPerHour / 60) * trainingDuration);
     }
}

在 B 类中,该属性设置为私有字符串,我创建了一个构造函数、一个 setter 和一个 getter,但是我如何才能在 A 类中访问该属性?我几乎尝试了所有方法,但它一直显示为错误... 不应该只是“B.getTrainingDuration”吗?

【问题讨论】:

  • trainingDuration 是如何声明的,是静态的吗?如果它不是静态的,则需要 B 类的实例才能访问
  • 显示更多代码,包括 main()。另外,为什么 trainingDuration 是一个字符串?在计算中使用,它应该是某种类型的数字。
  • 哦,对不起,我写得太快了 :D 当然它被声明为 int。它被声明为私有 int。
  • 如果您想在 B 类的方法 caloryConsumption() 中使用 trainingDuration,请将您的方法定义为 public int caloryConsumption(int minutes, int trainingDuration) 并且我可以看到 minutes 参数未使用。你需要重构你的代码。

标签: java class methods


【解决方案1】:

我建议更改方法 caloryConsumption 并添加类 Trainingsession 的参数。 因此,每当您想调用方法 caloryConsumption 时,您都会传递分钟数 + 对 Trainingsession 类的对象的引用,以便您可以调用它的方法。

你的方法是这样的:

public int caloryConsumption (int minutes, Trainingsession ts ) {
return ((caloriesBurnedPerHour / 60) * ts.gettrainingDuration());

【讨论】:

    【解决方案2】:
    public class Trainingsession { <- my mentioned class B
    
    private int trainingDuration;
    private int date;
    private int startingtime;
    private FitnessEquipment fitnessequipment;
    
    public Trainingsession(int date, int startingtime FitnessEquipment fitnessequipment, int trainingDuration){
        this.date = date;
        this.startingtime = startingtime;
        this.fitnessequipment = fitnessequipment;
        this.trainingDuration = trainingDuration;
    

    之后,还有 setter 和 getter,但我认为,我不需要展示它们。

    我的其他班级有上面提到的方法,为此,我需要其他班级的 trainingDuration,但我不知道如何获得此属性。

    【讨论】:

    • 这应该是对您的问题的编辑,而不是答案。是的,你应该展示你的 getter 和 setter,因为这就是你要问的。
    猜你喜欢
    • 2021-11-27
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 2019-06-05
    • 1970-01-01
    相关资源
    最近更新 更多