2014-04-08 19 views
0
  1. 添加一個名爲currentPhrase一個實例變量來保存本輪的短語

我的錯誤消息「這句不能被解析爲一個變量」 我覺得它與新的String()有關?也許。或者它可能是類似短語=新詞組();試圖調用類的一個實例變量

package edu.htc.java1.phrasegame; 
import edu.htc.java1.phrasegame.model.*; 

public class PhraseGameController { 

    public void currentPhrase() { 
     String p = new String(); 
     p = Phrase; 
    } 

} 

package edu.htc.java1.phrasegame.model; 

import java.util.ArrayList; 

public class Phrase { 
    public void setPhrase(String phrase) { 
     this.phrase = phrase; 
    } 

    private String phrase; 

    public Phrase(String phrase) {  
     phrase = phrase.toUpperCase(); 
     for(char c : phrase.toCharArray()) { 
      letters.add(new Letter(c)); 
     } 
    } 

    public String getPhrase() { 
     return phrase; 
    } 

    ArrayList<Letter> letters = new ArrayList<Letter>(); 

    public ArrayList<Letter> getLetters() { 
     return letters; 
    } 


    public boolean guessLetter(char c) { 
     // convert received character to letter 
     Letter letter = new Letter(c); 

     // loop through your list of letters 
     for(Letter l : letters) { 
      // if list of letters contains same letter as the one you received then return true 
      if(l.getLetter() == letter.getLetter()) { 
       letter.unhide(); 
       // return true; 
      } 
     } 

     // we did not find the letter, so we return false 
     return false; 
    } 
} 
+0

「1.添加一個名爲c的實例變量urrentPhrase保存當前輪的短語「這不是你在做什麼。你用一個void返回類型創建了一個名爲currentPhrase的方法,然後在那個方法中,你創建一個名爲p的新字符串,併爲它指定未聲明的變量Phrase的值,因此是錯誤消息。 –

+0

public void currentPhrase(Phrase); \t短語三=新短語(); //有點像這樣? – user3381466

+0

這是你的第二個問題,你可以像'String p = new String(); p =短語;'你認爲那應該做什麼? –

回答

0

實例變量是該類的一個屬性。

public class MyClass { 
    private static String classVariable; 

    private String instanceVariable; 

    public String instanceMethod() { 
     String localVariable = "hey"; 
    } 

    public static String classMethod { 

    } 
} 

實例化,你必須使用new關鍵字的變量:

SomeClass someInstance = new SomeClass(); 

或者,如果你使用泛型:

List<SomeType> myList = new ArrayList<SomeType>(); 

所以你的情況應該是:

public class PhraseGameController { 
    private Phrase p = new Phrase(); 
} 
0

我覺得首先你必須導入該包:

edu.htc.java1.phrasegame.model; 

到您的PhraseGameController類。加入這個包聲明之下,但在類聲明之上:

import edu.htc.java1.phrasegame.model.*; 

然後你會在那個類一個新的變量稱爲currentPhrase像這樣:

private Phrase currentPhrase; 

什麼你從那裏做有點超出了你的問題的範圍。

相關問題