Class setter和getter的简单用法?

Class setter和getter的简单用法?,class,setter,getter,Class,Setter,Getter,问题第二部分 谢谢你迄今为止的大力帮助。。 好吧,我已经取得了进步,但还是有点不对劲。 我的SpaceWarz课程如下: public class SpaceWarz { private boolean deePad; //access to this is restricted public boolean getDeePad() { return this.deePad; } public void setDeePad(boolean v

问题第二部分

谢谢你迄今为止的大力帮助。。 好吧,我已经取得了进步,但还是有点不对劲。 我的SpaceWarz课程如下:

public class SpaceWarz {
    private boolean deePad; //access to this is restricted
    public boolean getDeePad()
    {       return this.deePad;     }

    public void setDeePad(boolean value)
    {      this.deePad = value;     }
    }
它很高兴地与我的Render类共享值,我的大部分代码都位于该类中:

SpaceWarz sw = new SpaceWarz();
public void LoadGameSettings(){
    sw.setDeePad(_dPad);    // send value to SpaceWarz class
    _dPad = sw.getDeePad(); // get value from SpaceWarz class
}
但是,其他类中的onCreate方法无法传递值。游戏数据以onCreate方法加载并保存在onDestroy中,因此如果我无法将数据发送到:

    SpaceWarz sw = new SpaceWarz(); 
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

// SET SHARED DATA 
            _dPad = true; // debug value to be removed.
            sw.setDeePad(_dPad);
// SET SHARED DATA          
                    }
有没有办法纠正这个问题

对第一部分提出问题

需要一些关于二传手和接球手的基本帮助。我试图在包含onCreate方法的类和包含主代码的类之间移动数据,以便在应用程序启动和停止时加载和保存游戏设置。我试图使用bundle,但有人建议使用setter和getter会更简单

我创建了一个名为SpaceWarz的第三类:

package com.clockworkrobot.spacewarz;

public class SpaceWarz {

    private boolean deePad; //access to this is restricted

    public boolean getDeePad()
    {       return this.deePad;     }

    public void setDeePad(boolean value)
    {      this.deePad = value;     }

   }
我的设置正确吗?由于语法不正确,导致崩溃,任何人都能准确地概述我是如何设置和从其他类中获取值的:(


感谢您的关注。

我不完全理解这个问题,但要使用您编写的setter和getter,您必须在代码中的某个地方创建一个SpaceWarz对象

SpaceWarz sw = new SpaceWarz();
然后可以调用它的setter或getter方法

if (sw.getDeePad())
{
   //do something
}

sw.setDeePad(false);

很难理解你想做什么。但是getter/setter听起来很简单。这里有一个小例子说明它是如何工作的

public class MainClass() {

    public static void main(String [] args) {

         SpaceWarz game = new SpaceWarz();
         game.setDeePee(true);

         if (game.getDeePee()) // if true
             game.setDeePee(false); // turn off
    }
}

语法实际上没有错误…当您实例化SpaceWarz类时,get和set将正常工作。您遇到了什么类型的错误?我已添加了一些详细信息。我现在没有收到崩溃消息,但我的onCreate方法中没有采用值:(谢谢。我只是想在不同的类之间传递一些值,这样我正在编写的游戏就可以保留它的设置设置。我很少有编程经验,但已经成功地拼凑了一个相当复杂的小应用程序。这个小细节给了我很多麻烦。我认为缺乏基本原理。无论如何,我知道这个设置是如何工作的,但我不知道不明白为什么get中有if。我如何从中恢复布尔值?哦,没关系,我得到了。我在找这个:_dPad=sw.getDeePad();而且它工作得很好。谢谢Timulus和dispake。你刚刚打破了一个困扰我好几个星期的问题!嘎!太好了,不可能是真的。好吧,它一半工作。你知道为什么它不能从我的onCreate方法中获得值吗?谢谢。我有另一个代码snippit一半工作(它做的事情或多或少和我想的完全一样?)但是我重新编辑了我的帖子来解释进一步的问题:)很难理解代码的范围。无法判断loadGameSettings()和onCreate()是否是否在同一类中?如果是,它们都应该有权访问该SpaceWarz sw实例。如果不是,则需要解决每个方法对SpaceWarz对象的引用,或者将implement SpaceWarz作为一个单例。