从另一个班级访问课程?

时间:2017-06-03 23:10:41

标签: java class oop object

my work

(上图) 我试图从Fram1.java访问Food.calories或Food.carbs,但它不让我。有人可以告诉我为什么吗?

详细信息...我正在尝试通过编程卡路里计数器来练习Java,而Frame1是一个GUI类。我正在尝试写另一个课程,把所有的食物和碳水化合物的数量等等作为他们的属性。回答第一个问题就足够了,但是非常感谢任何其他方法的提示。谢谢!

1 个答案:

答案 0 :(得分:0)

首先,卡路里不是Food类中的一个字段。

其次,您将碳水化合物字段视为静态

  • 静态变量归班级所有。
  • 非静态变量归类实例所有。

您可以按照以下方式在Food类 static 中创建字段:

public static int cals, carbs, fat, protein;

但是,如果您的系统中需要多个食品,则需要创建食品类的实例。此外,如果您的构造函数具有用于设置字段的参数而不是每个具有10个每个特征的食品,则可能会有所帮助。

无论如何,这是一个实例化的例子:

public class Frame1
{
    private Food genericFood;

    public Frame1() 
    {
        genericFood = new Food(); 
        System.out.println(genericFood.cals);
    }
}

因为您正在创建Food类的实例,所以您不需要输入 static

此外,我建议查看封装