繁体   English   中英

您可以在另一个类的方法中调用变量吗?

[英]Can you call a variable in a method in another class?

嗨,我是prgramming的新手,目前正在用Java做一个项目。

我正在模拟一个动物园,其中的动物食用特定的食物,食用后,它们将获得特定的健康水平,并产生特定数量的废物。

为此,必须将食物存储在HashMap中的FoodStore类中。 为此,我创建了一个单独的类,称为食物,并创建了具有健康和废物属性的方法:

public class Food {

public int healthAdd;
public int wasteProd;

public Food hay(){
    healthAdd = +1;
    wasteProd =4;
    return null;
}

但是,当我给动物喂食时,我必须证明它们现在已经获得了新的健康点并产生了废物。

因此,我想知道是否可以访问我在其他类中的FoodClass的“ hay”方法中初始化的变量,例如healthAdd&wasteProd?

对不起,如果这似乎ed绕了:)

Java中的变量可以有两种类型。 您可以有“实例变量” ,也可以有“局部变量” (还有静态变量,我将不讨论)。

局部变量在方法内部或花括号内定义,并且仅在定义的作用域处于活动状态时有效。 换句话说,如果在括号内定义了局部变量,则在执行退出这些括号后,该变量便不再存在。

实例变量在class定义内定义,但在任何方法或其他花括号之外定义。 这些变量的生存时间与该类的相应实例的生存时间一样长。

例如:

public class MyClass {
    public int myInstanceVar1 = 0; // lives for as long as this MyClass
                                   // instance exists

    public MyClass() {   // Constructor for MyClass instances

        int myLocalVar1 = 0; // lives only during the constructor invocation
        :
        :
    }
    :
    :
}

在上面的代码段中,您将可以访问任何不为null MyClass对象上的myInstanceVar1字段。 实例字段的存在时间与对象的存在时间一样长。

但是,您将无法访问myLocalVar1因为它仅在构造函数执行期间存在。 构造函数完成后,局部变量将超出范围,并且不再在程序中的任何位置可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM