个人理解,不喜勿喷,多多指教:
Scanner是不需要调用close()方法的。
请看Scanner类的API:原文如下:
closepublic void close()关闭此扫描器。 如果此扫描器尚未关闭,并且其底层 readable 也实现 Closeable 接口,则该 readable 的 close 方法将被调用。如果此扫描器已经关闭,则调用此方法无效。
在扫描器关闭后执行搜索操作将导致 IllegalStateException。
注意:如果此扫描器尚未关闭,并且其底层 readable 也实现 Closeable 接口,则该 readable 的 close 方法将被调用。这句话就表明,无需再调用close()方法,因为其底层 readable 也实现 Closeable 接口, Closeable接口内就有一个方法:close(),Scaner的底层实现了它,也就代表重写了close()方法,如果再人为的写入close(),那就是多次一举了,当然也不算错。
/*
请写一个功能,完成两个数求和。
数据从键盘录入。并测试。
*/
import java.util.Scanner;
class ScannerTest
{
public static void main(String[] args)
{
//封装键盘录入
Scanner sc = new Scanner(System.in);
//获取两个数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
int result = sum(a,b);
System.out.println("求和结果是:"+result);
}
public static int sum(int a,int b)
{
return a + b;
}
}
这个程序是可以正常执行的,也不存在什么资源浪费的问题。IDE工具也不会报告任何错误。谢谢,如果有什么地方不对,各位请指正。
|