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返回 an的新方法并将其int放在那里。

然后,在 的main方法中Area,创建 的实例Incoming并调用新的方法来获取int. 这样做两次,然后将结果值传递给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

怎么样:

扫描仪阅读器 = 新扫描仪(System.in);

区域民俗=新区域(reader.nextInt(),reader.nextInt());

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

于 2012-04-07T14:04:22.227 回答