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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁清平 中级黑马   /  2012-6-1 17:20  /  1691 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

System.in当中的in是字段,请问字段是什么意思呢?
它返回的是一个InputStream抽象类。
为什么可以写成:
InputStream in = System.in
in.read();//按理说抽象类是不可以创建对象吧?那么这里的in是代表哪个类的对象啊?是InputStream的子类吗?是哪个子类啊?

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

5 个回复

倒序浏览
字段也称为属性,相当于一个类的成员变量(相当与C++中)
因为in是System类的InputStream类型的静态属性(字段),所以可以直接拿来用而不用实例化对象,定向到控制台输入

评分

参与人数 1技术分 +1 收起 理由
袁錦泰 + 1

查看全部评分

回复 使用道具 举报
因为in也是静态的啊,静态的属性不用它的类实例化就可以使用的。比如:
class A {
    public static int b = 0;
}

A不用实例化,就可以通过A.b来使用静态参数。
回复 使用道具 举报
System.in 的in 是System类调用的他的字段,返回的是InputStream类型,标准的输入流。
InputStream是抽象类,但是他有自己的构造方法。你可以通过重写他的某些方法,然后new一个对象出来
这是java的多态性,就是父类引用指向子类对象。
回复 使用道具 举报
System.in当中的in是字段,它是一个 “标准”输入流。
为什么可以写成:
InputStream in = System.in
in.read();//这里的in是一个inputStream 类型的变量。
回复 使用道具 举报
关于这种问题,要了解某个类某个属性的使用的,要养成良好的习惯——多查看API
查阅可知:static InputStream in
          “标准”输入流。 意思是System.in返回的类型是InputStream类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马