您好我是prgramming的新手,目前正在使用java进行项目。
我正在模拟动物园,动物吃特定的食物,食用后,它们会获得特定的健康状况,并产生特定量的废物。
为了做到这一点,食物必须存储在HashMap中的FoodStore类中。为了做到这一点,我创建了一个名为food的独立类,并创建了具有健康和废物属性的方法:
public class Food {
public int healthAdd;
public int wasteProd;
public Food hay(){
healthAdd = +1;
wasteProd =4;
return null;
}
然而,当我喂养动物时,我必须表明它们现在已经获得了新的健康点并产生了废物。
所以我想知道是否可以访问我已初始化的变量,例如,healthAdd& amp; wasteProd在另一个类的FoodClass的“hay”方法中?
对不起,如果这看起来很长篇大论:)
答案 0 :(得分:1)
Java中的变量可以有两种类型。您可以拥有"实例变量" ,您可以拥有"本地变量" (还有我赢得的静态变量&#39 ;讨论)。
局部变量在方法内部或花括号内定义,只有在定义的范围处于活动状态时才有效。换句话说,如果在大括号内定义了局部变量,则只要执行退出那些大括号,它就不再存在。
实例变量在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
:
:
}
:
:
}
在上面的代码段中,您可以访问不是myInstanceVar1
的任何MyClass
对象上的null
字段。只要对象存在,实例字段就存在。
但是,您无法访问myLocalVar1
,因为它仅在构造函数执行期间存在。构造函数完成后,局部变量超出范围,并且在程序中的任何位置都不再可用。