Java键盘录入流System.in是如何赋值的?

敲一句:InputStreamin=System.in;这时in已经有货了,已经可以接收键盘录入了,可以in是怎么被赋值的呢?InputStream是一个抽象类,这个in... 敲一句:InputStream in = System.in;这时in已经有货了,已经可以接收键盘录入了,可以in是怎么被赋值的呢?InputStream是一个抽象类,这个in具体的是一个什么类呢?如一个FileInputStream,我可以说这个子类的名字是"FileInputStream",可是这里我只能叫它“System.in”吗?
ctrl点进去,System.class中有一句:public final static InputStream in = null;
再ctrl+f录入setIn,找到:
public static void setIn(InputStream in) {
checkIO();
setIn0(in);
}
这个方法是谁调用的呀,我System.in调用了这个方法吗?这是底层自己隐藏调用的吗?
展开
 我来答
匿名用户
推荐于2016-01-14
展开全部
首先我声明..c语言我知道怎么输入..但是java我也知道有System.in来输入的...但是我没有用过system.in来输入东西...
恩.我应该跟你一样.是从学c语言.然后就学java面向对象语言...这里我说了java跟c的不同了.是面向对象编程了..一开始我接触java的时候,在你所有遇到的这个问题.当时我也存在..习惯在c语言是用scanf输入东西测试..但是java,那时候我烦恼为啥就没有类似c语言那好的一个输入的东西呢..那时候我还不知道system.in是输入东西..后来才知道的..但是知道了后我一次都没有用过...因为没有必要在控制台输入的东西..根本就不是在程序上面给用户用到的...就类似一个j2se的桌面程序..它面向用户的是窗口界面了.控制台仅是程序员用来打印查看数据的唯一界面了..就说控制台式面对开发者.而不像c语言那样.既面向用户也面向开发者了..所以需要那个输入..但是java不是..所以控制台那个输入我从来都没有用过了. j2ee跟j2me就更不用说需要输入了..j2ee的输入是网页上面输入的..j2me限制更多.如果你学过就知道了...
类似你上面需要用10个数来测试.. ..我觉得你就
int a[] = {1,2,3,4,5,6,7,8,9,10}..初始化就定义出来.然后你需要什么测试就测试了..不用什么输入了.多麻烦.以后你就感觉到的了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式