为java类提供用户输入

时间:2012-04-07 13:50:28

标签: java

我有以下课程:

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)

怎么办呢?

3 个答案:

答案 0 :(得分:1)

看起来您正在寻找一种方法来使用程序中其他位置Incoming中提供的输入。

为此,请移动代码以从main方法中获取输入。在Incoming中声明一个返回int并将其放在那里的新方法。

然后,在main的{​​{1}}方法中,创建Area的实例并调用新方法获取Incoming。这样做两次,然后将结果值传递给int构造函数。

答案 1 :(得分: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;
    }
}

答案 2 :(得分:0)

怎么样:

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

Area folk = new Area(reader.nextInt(),reader.nextInt());

的System.out.println(folk.getArea());