0

私は次のクラスを持っています:

class Area
{
    //Get User Input for classes
    int length;
    int width;

    public Area(int x,int y)
    {
        length = x;
        width = y;
    }

    public int getArea() {
        return width * length;
    }

    public static void main(String[] args) 
    {
        Area folk = new Area(4,5);
        System.out.println("Area of 4 * 5 is: " + folk.getArea());
    }
}

ユーザー入力を取得するために使用する別のクラスがあります。

import java.util.Scanner;

class Incoming
{
    public static void main(String[] args) 
    {
        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the first number");
        //get user input for a
        int a = reader.nextInt();
        System.out.println("Input Value Is: " + a);
    }
}

最初のクラスでは、事前定義された値の代わりにユーザーに入力を提供してもらいたい(つまりArea folk = new Area(4,5))

どうすればそれができますか?

4

3 に答える 3

1

プログラムの他の場所で提供されている入力を使用する方法を探しているようですIncoming

これを行うには、mainメソッドから入力を取得するようにコードを移動します。Incomingを返す新しいメソッドを宣言し、intそこに配置します。

次に、 のmainメソッドでAreaのインスタンスを作成しIncoming、新しいメソッドを呼び出して を取得しintます。これを 2 回実行し、結果の値をAreaコンストラクターに渡します。

于 2012-04-07T13:55:03.113 に答える
0

両方のクラスにメインがある理由がわかりません。たぶん私は何かを誤解しているかもしれませんが、これはあなたが望むようにそれを修正します(私は思います)。

class Area
{
    //Get User Input for classes
    int length;
    int width;

    public Area(int x,int y)
    {
        length = x;
        width = y;
    }

    public int getArea() {
        return width * length;
    }

    public static void main(String[] args) 
    {
        int x, y;
        Incoming inc = new Incoming();
        x = inc.getInt();
        y = inc.getInt();
        Area folk = new Area(x,y);
        System.out.println("Area of " + x + " * " + y + " is: "
                           + folk.getArea());
    }
}

そして他のクラス:

import java.util.Scanner;
class Incoming
{
    public static int getInt(String[] args) 
    {
        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the first number");
        //get user input for a
        int a = reader.nextInt();
        return a;
    }
}
于 2012-04-07T14:02:23.780 に答える
0

どうですか:

スキャナ リーダー = new Scanner(System.in);

エリア フォーク = 新しいエリア (reader.nextInt(),reader.nextInt());

system.out.println(folk.getArea());

于 2012-04-07T14:04:22.227 に答える