(初心者のJavaクラスの場合)割り当ては、1つのスキャナーインスタンスのみを作成することを指定しており、複数のメソッドで必要であるため、メインの外で宣言しました。Python の場合と同様に、配列を宣言し、それをメソッド呼び出し initialCash() と同一視しようとします。問題は、initialCash メソッドを静的にすると、Scanner を使用できないことです。initialCash() が静的でない場合、Eclipse は親切にも「非静的メソッドへの静的参照を作成することはできません」と通知してくれます。(money = initialCash(); 行内) どうすればこれを回避できますか?
package proj1;
import java.util.Scanner;
public class Project1
{
Scanner scanner = new Scanner(System.in);
public static void main(String[] args)
{
int[] money = new int[4];
money = initialCash();
}
public int[] initialCash()
{
int[] initialMoney = new int[4];
while(true)
{
System.out.print("Ones: ");
initialMoney[0] = scanner.nextInt();
System.out.print("Fives: ");
initialMoney[1] = scanner.nextInt();
System.out.print("Tens: ");
initialMoney[2] = scanner.nextInt();
System.out.print("Twenties: ");
initialMoney[3] = scanner.nextInt();
if((initialMoney[0]>=0)&&(initialMoney[1]>=0)&&(initialMoney[2]>=0)&&(initialMoney[3]>0))
{
return initialMoney;
}
else
{
System.out.println("One or more invalid denominations. Try again.");
}
}
}
}