System类为什么不能实例化

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:09:19
在JAVA帮助文档中是这样写的:System 类包含一些有用的类字段和方法。它不能被实例化。

具体是哪些类字段和方法呢?为什么导致不能实例化?

/** Don't let anyone instantiate this class */
private System() {
}

上面是System类的唯一的构造函数,你能实例化它吗?
这样定义就是为了不让你去实例化它

System类是一个特殊类,它是一个公共最终类,不能被继承,也不能被实例化,即不能创建System类的对象。

System类功能强大,与Runtime一起可以访问许多有用的系统功能。System类保存静态方法和变量的集合。标准的输入、输出和Java运行时的错误输出存储在变量in,out和err中。由System类定义的方法丰富并且实用。System类中所有的变量和方法都是静态的,使用时以System作为前缀,即形如

“System.变量名”和“System.方法名”。

1.标准的输入输出
System类包含三个使用频繁的公共数据流,分别是:标准输入(in)、标准输出(out)、标准错误输出(err)。

① public static final InputStream in--------标准输入。

这个属性是InputStream类的一个对象,它是未经包装的原始Input Stream,读取System.in之前应该先加以包装。可以通过read()方法读取字节数据。

② public static final PrintStream out--------标准输出。

③ public static final PrintStream err---------标准输出。

out和err都已经被包装成PrintStream对象,所以可以直接使用System.out和System.err。可以通过方法print()、println()或write()方法很方便地完成各种数据类型的输出。out与err使用上的不同是: System.out用于输出普通信息,out的输出一般需要缓存;System.err一般情况下用来打印错误信息,不需要缓存,快速显示紧急信息。