如何从包含的对象访问对象的字段

时间:2014-01-06 01:09:34

标签: java object

好吧,让我说我有一个类游戏。我将游戏实例化为游戏。现在游戏包含一个对象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对象更改状态?

2 个答案:

答案 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()调用的返回值。