2016-06-13 1 views
1

私は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; 

答えて

1

は、あなたは、あなたのクラス定義でprivate int Memesを持っているので、この警告を受けるだけでなく、totalUpdate()で宣言された変数int Memes

Memes = Memes + CompBot + CompTop + CompMid;

:あなたは totalUpdate()があなたのオブジェクトに Memesの値を更新する場合は、次のように問題の行で intを残し

:どのようにそれを修正したいものに依存

新しいローカル変数を宣言する場合は、別の名前を付けることをお勧めします。

int localMemes = Memes + CompBot + CompTop + CompMid;

1

あなたはこの

int Memes = Memes + CompBot + CompTop + CompMid; 

を行うとJavaはあなたがフィールドですMemesを初期化したかったように見えフィールド

private int Memes = 0; 

を隠して新しい変数の宣言としてこれを扱います。このラインでおそらく

Memes = Memes + CompBot + CompTop + CompMid; 
0

:これを行うために、割り当ての前にintをドロップ

int Memes = Memes + CompBot + CompTop + CompMid; 

変数「ミーム」のいずれかとすることができる方法totalUpdateで定義し()またはオブジェクトの属性です。だからパーザは混乱します。

変数名をlocalMemesなどに変更してください。あなたは、私が命名規則にこの記事を読んでお勧めのJavaに新しいしている。また以来

:フィールドレベルでhttp://www.oracle.com/technetwork/java/codeconventions-135099.html

0

宣言 "ミーム":その後、

int Memes = 0; //for example 

Memes += CompBot + CompTop + CompMid; 

int /オブジェクトの小文字名もクラス名の読みやすさを助けます。

memes += compBot + compTop + compMid; 
関連する問題