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