gpt4 book ai didi

java - 你能在另一个类的方法中调用变量吗?

转载 作者:行者123 更新时间:2023-11-30 10:52:50 24 4
gpt4 key购买 nike

大家好,我是编程新手,目前正在用 Java 做一个项目。

我正在模拟动物园,动物吃特定的食物,食用后,它们将获得特定的健康值,并产生特定量的废物。

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

public class Food {

public int healthAdd;
public int wasteProd;

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

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

所以我想知道是否可以访问我已经初始化的变量,例如另一个类中 FoodClass 的“hay”方法中的 healthAdd 和 wasteProd?

对不起,如果这看起来很啰嗦 :)

最佳答案

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

局部变量在方法或大括号内定义,并且仅在定义的范围处于 Activity 状态时存在。换句话说,如果在大括号内定义了一个局部变量,一旦执行退出这些大括号,它就会不复存在。

实例变量在 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
:
:
}
:
:
}

在上面的代码片段中,您将能够访问任何非 nullMyClass 对象的 myInstanceVar1 字段。只要对象存在,实例字段就存在。

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

关于java - 你能在另一个类的方法中调用变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34254638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com