根据用户输入找到输入形状的区域

时间:2014-12-16 11:16:06

标签: java

我想用Java创建一个程序,它基于用户输入 - 找到输入形状的区域。但我未能实现这一点。

这是我的剧本:

import java.util.Scanner;

public class area {
static Scanner advance = new Scanner(System.in);
public  void main(String[] args) {

    nu();
}
int length;
    int height;
int area;


public  void nu(){
    String message = advance.nextLine();

    if (message.equalsIgnoreCase("rectangle")){

        System.out.println("Enter the length of the rectangle: ");

        length  = advance.nextInt();

        //length declared.//
        System.out.println("Enter the height of the rectangle");

        height = advance.nextInt();

        //Height has been declared.//

        area = length * height;

        System.out.print("The area is: " + area);
    }
}
}

第一个问题是,这段代码没有运行,所以我不知道它是否正常工作。所有其他的事情都很好。你能告诉我,我做错了吗?

3 个答案:

答案 0 :(得分:1)

您需要将static添加到main方法并创建area的新实例。请参阅下面的代码。

public class area {
static Scanner advance = new Scanner(System.in);
public static void main(String[] args) {

    new area().nu();
}
int length;
int height;
int area;


public  void nu(){
    String message = advance.nextLine();

    if (message.equalsIgnoreCase("rectangle")){

        System.out.println("Enter the length of the rectangle: ");

        length  = advance.nextInt();

        //length declared.//
        System.out.println("Enter the height of the rectangle");

        height = advance.nextInt();

        //Height has been declared.//

        area = length * height;

        System.out.print("The area is: " + area);
    }
  }
}

答案 1 :(得分:1)

  1. 您需要将static添加到程序的main method
  2. 您无法直接从nu()调用main方法,因为它是instance method来调用它,您需要创建一个对象你的班级。

    public static void main(String[] args) {
    
        area a = new area();
        a.nu();
    }
    
  3. 另一个替代方法是,您可以将nu()方法设为静态,但之后您将无法直接在int length;int height;int area;中使用static method nu()个实例变量。然后你需要使这些变量也是静态的,或者创建一个类的对象,然后根据需要使用这些变量。

答案 2 :(得分:0)

由于Java程序无法找到运行的主要方法: 我们需要根据您的代码在3个地方添加静态关键字。

请尝试使用以下完整源代码:

import java.util.Scanner;

public class area {
    static Scanner advance = new Scanner(System.in);

    public  static void main(String[] args) { //1st change

        nu();
    }
    static int length; //2nd change
    static int height; //2nd change
    static int area; //2nd change

    public static  void nu(){ //3rd change
        String message = advance.nextLine();

        if (message.equalsIgnoreCase("rectangle")){

            System.out.println("Enter the length of the rectangle: ");

            length  = advance.nextInt();

            //length declared.//
            System.out.println("Enter the height of the rectangle");

            height = advance.nextInt();

            //Height has been declared.//

            area = length * height;

            System.out.print("The area is: " + area);
        }
    }
}