2017-06-03 172 views
-6

my work从另一个班级访问班级?

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

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

+2

欢迎来到Stack Overflow。请查看[Tour](https://stackoverflow.com/tour)和[Asking](https://stackoverflow.com/help/asking)。 – Shiro

+1

不要张贴图片,在这里发表完整的代码。 – WilomGfx

+1

我们看不到你的其他代码,我们该如何回答这个问题? –

回答

0

首先,卡路里不是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); 
    } 
} 

因为你正在创建的食品类的实例,你就不需要静态打字。

此外,我建议调查封装

相关问题