【问题标题】:Accessing a class from another class?从另一个班级访问一个班级?
【发布时间】:2017-11-05 01:39:56
【问题描述】:

(上图) 我正在尝试从 Fram1.java 访问 Food.calories 或 Food.carbs,但它不允许我这样做。有人能告诉我为什么吗?

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

【问题讨论】:

  • 欢迎来到 Stack Overflow。请查看TourAsking
  • 不要发图片,把完整代码贴在这里。
  • 我们看不到你的其他代码,我们应该如何回答这个问题?
  • 我投票结束这个问题,因为没有足够的上下文信息来回答它。另外,这里不允许发布代码图片,请以文本形式发布。
  • 没有“Food.calories”,有“Food.cals”。你是什​​么意思“不会”让你?如果你想编程,你必须学习的第一件事是具体准确

标签: java class oop object


【解决方案1】:

首先,calories 不是 Food 类中的字段。

其次,您将 carbs 字段视为 静态

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

您可以将 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 类型。

此外,我建议您研究一下封装

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    相关资源
    最近更新 更多