-1

(初心者の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.");
            }
        }

    }


}
4

4 に答える 4

3

クラスのインスタンスを作成し、そのインスタンスで main から initialCash を呼び出します。

money = new Project1().initialCash();
于 2013-02-22T20:53:25.467 に答える