JAVA的输入函数,Scanner in=new Scanner(System.in);请教一下!

来源:百度知道 编辑:UC知道 时间:2024/05/28 10:35:47
Scanner in=new Scanner(System.in);
System.out.print("how much money do you need?")
double goal = in.nextDouble();
我的疑问在 第一行 和 第三行
1、 带参数的 对象,是什么意思? 是说创建了一个 in对象,它等于System.in么??
2、in.nextDouble() 是Scanner里面的原有函数么?? 可以直接调用?

Scanner是util5.0包自带的一个类,它封装了InputStreamReader
System.in其实就是获得一个键盘输入流,监听键盘输入的数据
所以这句话Scanner in=new Scanner(System.in);
就已经得到了获取键盘输入的实例,但是in 和System.in不是一个东西,
Scanner提供了很多中方法,不光有nextDouble(); 你可以查看API有非常多的方法,明白了么?

in是System这个类里面的一个InputStream类型的静态变量。
而你new Scanner(System.in)就是说构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
nextDouble() 是Scanner类里面的方法,用in(对象的引用)去调用

1、在这里,in对象是对System.in对象的包装,构造方法是可以有参数的Scanner类有一个带参数的构造方法:Scanner(InputStream source);
2、nextDouble() 是Scanner里面原有的函数,能直接调用,作用是取得下一个double值,类似的方法还有:nextInt()、nextLong()!!