A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ring8677 中级黑马   /  2015-3-30 21:57  /  945 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

InputStream in = System.in 这句话是什么意思啊?
我知道System.in 是键盘录入;InputStream in 是创建一个字节输入流对象in;
可是合起来是怎么个意思啊?


4 个回复

倒序浏览
System.in是一个标准输入流,一般指键盘输入,其返回的输入流类型为InputStream;InputStream in 是声明了一个InputStream类型对象的引用;InputStream类型的引用指向InputStream类型的对象,就是这样啊
回复 使用道具 举报
in在System类中是一个静态成员变量,定义如下:
public static final InputStream in;
在System类的静态代码块中做了初始化,源码如下:
in = new BufferedInputStream(new FileInputStream(FileDescriptor.in));
其实它就是一个InputStream 类型的对象
InputStream in = System.in这句话不过是一个引用指向一个已存在的对象,这个System.in对象才是输入流,InputStream in只是声明了一个该类型的引用,并没有创建对象的功能。
回复 使用道具 举报
花独恋水 发表于 2015-4-1 23:32
in在System类中是一个静态成员变量,定义如下:
public static final InputStream in;
在System类的静态代码 ...

多谢了。
回复 使用道具 举报
原理:父类的引用指向了子类对象
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马