Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 变量未初始化并隐藏在字段中_Java_Variables_Netbeans_Initialization - Fatal编程技术网

Java 变量未初始化并隐藏在字段中

Java 变量未初始化并隐藏在字段中,java,variables,netbeans,initialization,Java,Variables,Netbeans,Initialization,我对java相当陌生,所以我不明白为什么会出现初始化错误。在代码中,我的整数“Memes”表示它可能尚未初始化,并且一个局部变量隐藏在字段中 private void totalUpdate(int yes){ if (yes==1){ int CompBot = Integer.parseInt(lblbotComp.getText()); int CompTop = Integer.parseInt(lbltopComp.getText()

我对java相当陌生,所以我不明白为什么会出现初始化错误。在代码中,我的整数“Memes”表示它可能尚未初始化,并且一个局部变量隐藏在字段中

 private void totalUpdate(int yes){


     if (yes==1){
             int CompBot = Integer.parseInt(lblbotComp.getText());
     int CompTop = Integer.parseInt(lbltopComp.getText());
     int CompMid = Integer.parseInt(lblmidComp.getText());

                int Memes = Memes + CompBot + CompTop + CompMid;
          lbltotalComp.setText("Computer has earned "+ Memes +" points in total");
}
    }
 private void pointUpdate(int points){
     pointsUser = pointsUser + points ;
     lbluserPointsEst.setText (""+pointsUser+"");
 }

 private void computerPointUpdate(int pointComp){
     pointsComputer = pointsComputer + pointComp ;
     lblcompPointsEst.setText (""+pointsComputer+"");
 }

 private int play(int points){
int score;
int randomScore = (int)((100 -1 +1)*Math.random() +1);
 if (randomScore < points){
     score = points;
     }
    else{
   score = 100;
    }

return score;
 }

 private int playComp(int pointsComp){
int score;
int randomScore = (int)((100 -1 +1)*Math.random() +1);
 if (randomScore < pointsComp){
     score = pointsComp;
     }
    else{
   score = 100;
    }

  return score;
 }

        private int Memes = 0;
        private final Timer messageTimer;
        private int pointsComputer = 0;
        private int pointsUser = 0;
        private int count;
private void totalUpdate(int-yes){
如果(是==1){
int CompBot=Integer.parseInt(lblbotComp.getText());
int CompTop=Integer.parseInt(lbltopComp.getText());
int CompMid=Integer.parseInt(lblmidComp.getText());
int Memes=Memes+CompBot+CompTop+CompMid;
lbltotalComp.setText(“计算机总共获得“+模因+”点数”);
}
}
私有void点更新(int点){
pointsUser=pointsUser+点;
lbluserPointsEst.setText(“+pointsUser+”);
}
私有无效计算机点更新(int pointComp){
pointsComputer=pointsComputer+pointComp;
lblcompPointsEst.setText(“+pointsComputer+”);
}
私人整数播放(整数点){
智力得分;
int randomScore=(int)((100-1+1)*Math.random()+1);
if(随机得分<分){
分数=分数;
}
否则{
得分=100分;
}
返回分数;
}
专用int playComp(int pointsComp){
智力得分;
int randomScore=(int)((100-1+1)*Math.random()+1);
如果(随机分数<点scomp){
分数=点数;
}
否则{
得分=100分;
}
返回分数;
}
私有整数模因=0;
专用最终计时器消息计时器;
专用int点计算机=0;
私有int pointsUser=0;
私人整数计数;

您收到此警告是因为您的类定义中有
私有int-Memes
,以及
totalUpdate()中声明的变量
int-Memes

如何修复它取决于您想要什么:

如果希望
totalUpdate()
更新对象中
Memes
的值,请在相关行中省略
int
,如下所示:

Memes=Memes+CompBot+CompTop+CompMid

如果要声明新的局部变量,最好为其指定一个不同的名称:

int localMemes=Memes+CompBot+CompTop+CompMid

当您执行此操作时

int Memes = Memes + CompBot + CompTop + CompMid;
Java将其视为新变量的声明,该声明隐藏了字段

private int Memes = 0;
看起来您想要初始化
Memes
,这是字段。为此,将
int
放在作业前面:

Memes = Memes + CompBot + CompTop + CompMid;
可能是这样的:

int Memes = Memes + CompBot + CompTop + CompMid;
变量“Memes”可以是方法totalUpdate()中定义的变量,也可以是对象的属性。因此解析器会感到困惑

尝试将变量的名称更改为localmeme之类的名称

另外,由于您是Java新手,我建议您阅读这篇关于命名约定的文章:

在字段级别声明“meme”:

int Memes = 0; //for example
然后

此外,整数/对象的小写名称有助于类名的可读性

memes += compBot + compTop + compMid;
memes += compBot + compTop + compMid;