2016-05-09 7 views
0

私はとても大変でしたが、これを動作させることができませんでした。 "Game"クラスの "推測"メソッドは、パラメータ "someInt"と "Number"クラスの変数 "x"を比較する必要があります。私は本当に助けに感謝します、私はこれを今晩行う必要があります。これはこれまでのところ、私が得たものである:他のクラスからの変数との比較

public class Number 
{ 
private int x; 

/** 
* Constructor for class Number. 
* This constructor assigns x to a new random 
* number between 1 and 100 
*/ 
public Number() 
{ 
    // The following lines creates a random number 
    // between 1 and 100 and assigns it to x 
    java.util.Random random = new java.util.Random(); 
    x = random.nextInt(100) + 1; 
} 

public int getNumber(){ 
    return x; 
} 
} 

そして、私の他のクラス:ここ

public class Game 
{ 
private Number number; 

/** 
* This constructor should initialize the filed number 
*/ 
public Game() { 
    Number number1 = new Number(); 
    number1.getNumber(x); 

} 

/** 
* This method takes a parameter "someInt" and 
* compares it with the value stored in "this.number". 
* If "someInt" is less than the value stored in "this.number", 
* then the system should print "Your guess is too small" on the screen; 
* if "someInt" is larger than that value, 
* then the system should print "Your guess is too large" on the screen; 
* otherwise it should print "You win!". 
*/ 
public void guess(int someInt) { 
    if (someInt < x){ 
     System.out.println("Your guess is too small"); 
    } 
    else if (someInt > x) { 
     System.out.println("Your guess is too large"); 
    } 
    else { 
     System.out.println("You win!"); 
    }  
} 
} 
+0

'number1.getNumber(x);を' int x = number1.getNumber(); 'に置き換えます。 –

答えて

1

が変更されたバージョン一方

public class Game 
{ 
private Number number; 

/** 
* This constructor should initialize the filled number 
*/ 
public Game() { 
    this.number = new Number(); 

} 

/** 
* This method takes a parameter "someInt" and 
* compares it with the value stored in "this.number". 
* If "someInt" is less than the value stored in "this.number", 
* then the system should print "Your guess is too small" on the screen; 
* if "someInt" is larger than that value, 
* then the system should print "Your guess is too large" on the screen; 
* otherwise it should print "You win!". 
*/ 
public void guess(int someInt) { 
    if (someInt < number.getNumber()){ 
     System.out.println("Your guess is too small"); 
    } 
    else if (someInt > number.getNumber()) { 
     System.out.println("Your guess is too large"); 
    } 
    else { 
     System.out.println("You win!"); 
    }  
} 
} 

である、あなたは使用しないでくださいjava.langと同じ名前のクラスは、Numberとなります。それはあなたのコードを読みにくく、バグジェニックにします。

問題がされた:

  • Number.getNumber()は引数を取らない、あなたはnumber上で動作する必要がある間は、ローカルオブジェクトnumber1を作成した1
  • を提供します。
  • guess()にはxを、代わりにNumber.getNumber()を使用してください。

Numberの名前をjava.lang.Numberで名前の衝突を起こさないように変更することをお勧めします。

0

ここで、これは間違っている:

public Game() { 
    Number number1 = new Number(); 
    number1.getNumber(x); 

} 

Number.getNumber()は一切のparamをとらず、int型を返さなければならないため(それがゲッターです)...

は、多分あなたは何をする意味:

public class Game { 
    private int x; 
    private Number number; 

/** 
* This constructor should initialize the filed number 
*/ 
public Game() { 
    Number number1 = new Number(); 
    this.x = number1.getNumber(); 

} 
0

あなたはnumber1.getNumber(x)を持っています。あなたの番号クラスのgetNumberには引数はありません。

getNumberメソッドでは、xの戻り値があります。あなたはゲームのようにそれを処理する必要があります:

int numberToCompare; (プライベート番号の下に宣言)

number1.getNumber(x); numberToCompare = number1.getNumber();でなければなりません。

次に、someintをnumberToCompareと比較する必要があります。

関連する問題