交互式显示几何图形中形状数量的Java程序

交互式显示几何图形中形状数量的Java程序,java,Java,我有一个java程序,用来显示三角形、梯形和六边形的几何形状的边数。我成功地创建了代码,这样当我运行java形状时,它会同时显示所有的形状和边,但是我想让它具有交互性,这样用户可以被提示输入她想要的形状,返回的是它的边数,java中的哪个功能可以最好地做到这一点 public abstract class Shape { public abstract void numberOfSides(); public static void main(String[] args)

我有一个java程序,用来显示三角形、梯形和六边形的几何形状的边数。我成功地创建了代码,这样当我运行java形状时,它会同时显示所有的形状和边,但是我想让它具有交互性,这样用户可以被提示输入她想要的形状,返回的是它的边数,java中的哪个功能可以最好地做到这一点

public abstract class Shape {

    public abstract void numberOfSides();

    public static void main(String[] args)
    {
        System.out.println("The Geometrical characteristics of the figures are as follows");

        Trapezoid t=new Trapezoid();
        Triangle tg=new Triangle();
        Hexagon h=new Hexagon();
        t.numberOfSides();
        tg.numberOfSides();
        h.numberOfSides();
    }
}
class Trapezoid extends Shape {
    public void numberOfSides()
    {
        System.out.println("Trapezoid~It is geometrical figure with an attribute of 4 sides (Of which two are parallel and with no angles)");
    }
}
class Triangle extends Shape {
    public void numberOfSides()
    {
        System.out.println("Triangle~It is geometrical figure with an attribute of 3 sides");   
    }
}   
class Hexagon extends Shape {
    public void numberOfSides()
    {   
        System.out.println("Hexagon-It is geometrical figure with an attribute of 6 sides");
    }
}
这是我在尝试实现上述功能后的新跳线,它说存在错误,过时的方法

import java.io.*;
 public abstract class Shape {

    public abstract void numberOfSides();

    public static void main(String[] args) 
    {  
        System.out.println("Enter the name of the Shape");
        BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
        try {
        String shapeName = br.readLine();

        if (br.equals ("Trapezoid"))
                {Trapezoid t = new Trapezoid();
                t.numberOfSides();
                }
        else if (br.equals ("Triangle"))    
                {Triangle tg = new Triangle();
                tg.numberOfSides();
                }
        else if (br.equals ("Hexagon")) 
                {Hexagon h = new Hexagon();
                h.numberOfSides();
                }
                }    
}
class Trapezoid extends Shape {
    public void numberOfSides()
{
        System.out.println("Trapezoid~It is geometrical figure with an attribute of 4 sides (Of which two are parallel and with no angles)");
}
}
class Triangle extends Shape {
    public void numberOfSides()
{
        System.out.println("Triangle~It is geometrical figure with an attribute of 3 sides");   
}
}   
class Hexagon extends Shape {
    public void numberOfSides()
{   
        System.out.println("Hexagon-It is geometrical figure with an attribute of 6 sides");
}
}

要从用户处读取输入,您需要使用缓冲读取器。然后,您需要根据用户输入有条件地调用您的方法

一旦编写了代码,就可以实现一个菜单,供用户选择所需的形状。代码看起来像这样

System.out.println("Select one of the following shapes. \n 1) Trapezoid \n 2) Triangle \n 3) Hexagon");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String shapeName = br.readLine();

if(br.equals("Trapezoid" || br.equals("1") {
   Trapezoid t = new Trapezoid();
   t.numberOfSides();
}
// ...

@上述方法产生了一个错误,显示了obdolete方法的使用,为什么会这样?如果你告诉我它所说的哪种方法是过时的,我会更容易告诉你它的意思。你的代码是否编译并运行?我已经将已编译但拒绝有效运行的新代码放入,因为我提到的错误,它没有明确指定错误。复制错误消息的确切文本并将其输入谷歌搜索引擎。在不知道你所遇到的错误的情况下,我帮不了你多少忙。根据我做的谷歌搜索,你所遇到的错误似乎是2012年12月修复的Eclipse错误。尝试重新安装Eclipse,看看它是否有效。这是我找到的bug报告的链接。
System.out.println("Select one of the following shapes. \n 1) Trapezoid \n 2) Triangle \n 3) Hexagon");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String shapeName = br.readLine();

if(br.equals("Trapezoid" || br.equals("1") {
   Trapezoid t = new Trapezoid();
   t.numberOfSides();
}
// ...