好吧,让我说我有一个类游戏。我将游戏实例化为游戏。现在游戏包含一个对象startupState。如何从startupState更改游戏中的int?
很抱歉,如果我措辞不好...代码示例:
public class game{
int state;
StartupState startupState;
public static void main(String[] args){
Game game = new Game();
}
public Game(){
state = 0;
startupState = new StartupState();
}
}
因此,使用此代码,我将如何从startupState对象更改状态?
答案 0 :(得分:1)
您无法从Game
更改StartupState
对象。后者是一个单独的类的实例,它可能在没有Game
实例的情况下存在。但是,您可以反过来,从startupState
更改game
(除非它已声明为final
)。要更改state
,您需要一个setter(从当前包之外访问它),或者您需要声明它public
。然后,你可以做
game.setState() // with setter
或
game.state = some_int // if it's public
答案 1 :(得分:0)
我希望我能正确地解释这个问题。所以我假设StartupState
的实例有一个initialState
成员变量,可能有public int getInitialState() {...}
实例方法返回它。在那种情况下......没有真正直接的方法来改变state
实例的Game
成员变量来自 {/ 1}} StartupState
类(我假设那是你想在这做什么)。为此,您必须从getInitialState()
类的实例方法调用Game
,并将this.state
设置为getInitialState()
调用的返回值。