首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >system.in包含什么?

system.in包含什么?
EN

Stack Overflow用户
提问于 2015-10-24 03:44:52
回答 2查看 68关注 0票数 0

我在努力提高我对IO的理解。因此,据我所知,'in‘是系统类的成员变量。

我认为它是一个引用变量,因为它的类型是“InputStream”,正如http://docs.oracle.com/javase/7/docs/api/java/lang/System.html中提到的那样

但是,'InputStream‘是一个抽象类,因此不能实例化它。

我做了一些测试,并得出结论,虽然不能实例化抽象类,但是可以创建抽象类类型的引用变量。因此,我的第一个问题是否有目的,如果没有,为什么允许这样做?

代码语言:javascript
复制
Example: 

abstract class Someclass {
;
}

Someclass variable; // A field member of some another class. What purpose could it serve? 

接下来是我的第二批相关问题。system.in变量包含什么(或引用)?当然不是

InputStream in =新的InputStream();

因为这是一门抽象的课。这是否意味着它有一个子子类的实例?如果是,是哪一个?有没有一种方法可以在线查看领域中流行的变量和方法的“身体”?

谢谢你的帮助。

编辑:重复建议没有解决这个问题。我唯一了解到的是,InputStream可能是用BufferedStream类实例化的。

以下问题仍然存在:

1.)有什么方法可以在线查看字段流行变量和方法的“主体”吗?为什么允许它引用抽象类,它的目的是什么?

3.)还有一个新的问题--为什么是InputStream in = new BufferedStream()而不是BufferedStream in = new BufferedStream()

EN

回答 2

Stack Overflow用户

发布于 2015-10-24 04:29:10

对于这个问题

3.)以及作为一系列建议出现的新问题--为什么InputStream in =()而不是BufferedStream in =()?

阅读有关依赖注入的文章。

2.)为什么允许它引用抽象类,它的目的是什么?

根据我的知识,我所能说的就是:根据定义,我们不能为抽象类创建一个新的实例,但是我们可以使用一个现有的实例。因为它仍然可以拥有数据成员和数据变量。由于这些数据成员可能不是静态,因此我们需要一个名称引用来访问它。

你的第一个问题不清楚。但是如果想要查看.class文件中的源代码,请阅读有关反编译的内容。Java也随它而来。

票数 1
EN

Stack Overflow用户

发布于 2015-10-24 03:47:33

System.in是一个InputStream,它通常连接到控制台程序的键盘输入。System.in不常使用,因为数据通常通过命令行参数或配置文件传递给命令行Java应用程序。在具有GUI的应用程序中,对应用程序的输入是通过GUI提供的。这是一个独立于Java的输入机制。System本身是java.lang包中的公共最终类,它包含几种输入、输出和错误输出方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33314330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档