【问题标题】:setters and getters simple use?setter 和 getter 简单使用?
【发布时间】:2011-11-09 12:15:19
【问题描述】:

质疑第二部分

感谢您迄今为止的大力帮助.. 好的,我已经取得了进展,但还是有些不对劲。 我的 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          
                    }

任何想法如何解决这个问题?

质疑第一部分

在setter 和getter 方面需要一些非常基本的帮助。我正在尝试在包含我的 onCreate 方法的类和包含我的主代码的类之间移动数据,以在我的应用程序启动和停止时加载和保存游戏设置。我尝试使用 Bundles,但建议使用 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;     }

   }

我是否设置正确,任何人都可以准确地概述我如何设置并从其他类中获取值,因为我没有正确获取导致崩溃的语法:(

感谢观看。

【问题讨论】:

  • 语法确实没有错误...当您实例化 SpaceWarz 类时,您的 get 和 set 将起作用。您遇到了什么类型的错误?
  • 我添加了更多信息。我现在没有崩溃,但我的 onCreate 方法没有采用值:(

标签: class setter getter


【解决方案1】:

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

SpaceWarz sw = new SpaceWarz();

然后你可以调用它的setter或getter方法。

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

sw.setDeePad(false);

【讨论】:

  • 谢谢。我只是想在类之间传递一些值,所以我正在编写的游戏将保留其设置设置。我几乎没有编程经验,但设法将一个相当复杂的小应用程序拼凑在一起。这个小细节给我带来了很多麻烦。我认为缺乏基本面。反正。我知道集合是如何工作的,但我不明白为什么在 get 中有一个 if。我如何从中恢复我的布尔值?
  • 哦,没关系,我明白了。我在找这个:_dPad = sw.getDeePad();它工作得很好。感谢 Timulus 和 dispake。你刚刚打破了困扰我数周的问题!
  • 嘎!必须好得令人难以置信。好的,它可以正常工作.. 任何想法为什么它无法从我的 onCreate 方法中获取值?
【解决方案2】:

很难理解您要做什么。但是 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
    }
}

【讨论】:

  • 谢谢。我已经让其他代码片段工作了一半(它或多或少与我认为的完全相同?)但我重新编辑了我的帖子以解释进一步的障碍:)
  • 很难遵循代码的范围。分不清 loadGameSettings() 和 onCreate() 是否属于同一个类?如果是这样,他们应该都可以访问该 SpaceWarz sw 的实例。如果没有,那么您需要解决每个方法对 SpaceWarz 对象的引用,或者将 SpaceWarz 实现为单例。
猜你喜欢
  • 2013-08-09
  • 2011-06-27
  • 2013-05-03
  • 2010-11-04
  • 1970-01-01
  • 2018-01-02
  • 2016-08-04
  • 1970-01-01
  • 2019-11-26
相关资源
最近更新 更多