您好我对Java相对较新,但我认为我开始对它有所了解。无论如何,我想知道是否可以从一个完全不同的类中访问main方法中声明的变量(或类,如果这样更容易),如果是这样的话?例如,我编写了一个简单的生命游戏模拟,我想通过改变一个变量轻松地改变我的网格的大小。但是,此变量不仅需要更改计算机看到的功能网格,还需要更改GUI网格。由于GUI网格不在主类文件中,因此我不知道如何访问变量。有什么建议吗?
//谢谢,Ivar
答案 0 :(得分:0)
建议:最好的办法是获得有关Java和OO编程的教科书。只是尝试编写程序,你不可能正确地学习这些东西。
这适用于正在寻找此类问题答案的其他人。
无论如何,我想知道是否可以从一个完全不同的类中访问main方法中声明的变量(或者更简单的类),如果是这样的话,怎么样?
main
方法中声明的变量是局部变量,无法从其他任何地方访问 1 。
变量可以在包含C
方法的类(例如main
)中声明。
如果您创建了C
的实例,则可以从另一个类(模块化可见性规则...见下文)访问实例变量(也称为字段)。
静态变量不需要C
的实例......但另一方面,变量只有一个实例。
可见性规则说明是否允许另一个类访问变量(或方法)。根本看不到private
字段。每个班级都可以看到public
字段。 protected
和包私人可见性介于无可见性和完全可见性之间。
允许将所有字段声明为public
,以便一切都可以看到并且(通常)修改状态。然而,这是一个坏主意,因为它打破了抽象界限"需要主要的大型OO程序是可以理解和维护的。
1 - 这不是严格正确的。方法的局部变量可能在范围内,并且对于在方法中声明的嵌套类或lambda是可见的。但是,所述变量必须是final
或有效最终(取决于Java版本)。此外,我怀疑这是第一步编程练习的正确解决方案......