使用方法之间的变量

时间:2016-05-02 15:54:37

标签: java android variables android-studio methods

不幸的是,我是使用java编码的初学者。我现在的问题是为什么runde方法中的变量punktestarteRunde()未定义。但实际上我已经用上面的方法定义了它们并不是我吗?为什么我不能在以下方法中使用这些变量?

public class GameActivity extends Activity implements View.OnClickListener{

    private void spielStarten(){
        boolean spielLaeuft = true;
        int runde = 0;
        int punkte;
        punkte = 0;
        starteRunde();
    }

    private void starteRunde(){
        runde = runde + 1;
        int muecken = runde * 10;
        int gefangeneMuecken = 0;
        int zeit = 60;
        bildschirmAktualisieren();
}

...

3 个答案:

答案 0 :(得分:1)

因为它们不是全球性的。要在所有方法中使用这些变量,请在类级别定义它们。

    public class GameActivity extends Activity implements View.OnClickListener{

        boolean spielLaeuft = true;
        int runde = 0;
        int punkte;

    private void spielStarten(){       
        punkte = 0;
        starteRunde();
    }

    private void starteRunde(){
        runde = runde + 1;
        int muecken = runde * 10;
        int gefangeneMuecken = 0;
        int zeit = 60;
        bildschirmAktualisieren();
}

答案 1 :(得分:0)

变量有一个范围,简单地说就是它们所定义的代码块。因为你已经在方法中定义了这些变量,所以其他方法不能访问它们是因为它们超出了该方法的范围

在这种情况下,您可以考虑将变量移动到类级别:

public class GameActivity extends Activity implements View.OnClickListener{
boolean spielLaeuft;
int runde;
int punkte;
int muecken;
int gefangeneMuecken;
int zeit;

private void spielStarten(){
    spielLaeuft = true;
    runde = 0;
    punkte = 0;
    starteRunde();
}

private void starteRunde(){
    runde = runde + 1;
    muecken = runde * 10;
    gefangeneMuecken = 0;
    zeit = 60;
    bildschirmAktualisieren();
}
}

您还可以选择将变量作为参数传递给方法,因此,如果它可以正常工作,您也可以像这样编码starteRunde而不是在类级别定义以下变量更适合您的下一个方法调用:

private void starteRunde(){
    int runde = runde + 1;
    int muecken = runde * 10;
    int gefangeneMuecken = 0;
    int zeit = 60;
    bildschirmAktualisieren(runde, meucken, gefangeneMuecken, zeit);
}

我建议您对变量范围进行一些研究,以便更好地理解它。这里的例子没有完全解释这个概念。

答案 2 :(得分:0)

Java有4种不同的变量
•类变量
•实例变量
•局部变量
•参数变量

每个变量都有2个属性:
•生命时间=变量存在的持续时间
•scope =程序中可以访问变量(可以使用)的区域

This Article向您解释java

中变量范围的更多细节