【发布时间】:2016-07-31 16:35:04
【问题描述】:
我刚开始学习Java并编写了这段代码来练习创建界面。我意识到这里使用接口关系可能不是实际使用的方式,但我这样做只是为了练习和基本理解。
因此,无论如何,我创建了程序来接受用户对他们想要执行的操作的输入,然后执行所述操作。为此,用户提供两个输入:首先是他们想要执行的操作,然后是他们想要执行的数字。例如,如果他们想找到 4 的平方根,他们首先输入 2 来选择平方根,然后输入 4 表示他们想找到 4 的平方根。为此,我打开了扫描仪多个班级的班级。但是,在任何一个类中关闭扫描仪都会产生错误,因为显然一旦在文件中关闭它,它就无法重新打开。我进行了很多搜索,大多数建议都集中在说使用像这样的扫描仪的多个实例只会产生问题,所以只创建一个。虽然我可以重写这段代码来进行调整,但我想知道是否有一种方法可以在不创建任何警告消息的情况下完成我所做的事情:
import java.util.Scanner;
public class Operation
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.println("1. Square");
System.out.println("2. Square Root");
System.out.print("Enter Number: ");
int choice = in.nextInt();
switch(choice)
{
case 1:
Squaring s1 = new Squaring();
s1.getDim();
s1.operate();
break;
case 2:
Root r1 = new Root();
r1.getDim();
r1.operate();
}
}
}
interface Method
{
void getDim();
void operate();
}
class Squaring implements Method
{
double n, r;
public void getDim()
{
Scanner in = new Scanner(System.in);
System.out.print("Input Number: ");
n = in.nextDouble();
}
public void operate()
{
r = n*n;
System.out.println("Squared of " + n + " is = " + r);
}
}
class Root implements Method
{
double n, r;
public void getDim()
{
Scanner in = new Scanner(System.in);
System.out.print("Input Number: ");
n = in.nextDouble();
in.close();
}
public void operate()
{
r = Math.sqrt(n);
System.out.println("Square root of " + n + " is = " + r);
}
}
【问题讨论】:
-
您粘贴的代码没有显示任何警告/错误。它工作得很好。你还想要什么?
标签: java