在java的api文档里有说明,不能创建对象。Systems这类成员函数全是静态成员函数,没有成员变量。即使它能创建对象,也只是一个只有行为没有属性的对象。现实世界中的事物是没有属性只有行为的事物吗?所以我认为这是它不能实例化的一个原因吧。java.lang 类 System java.lang.Object java.lang.System--------------------------------------------------------------------------------public final class Systemextends ObjectSystem 类包含一些有用的类字段和方法。它不能被实例化。 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 字段摘要 static PrintStream err “标准”错误输出流。 static InputStream in “标准”输入流。 static PrintStream out “标准”输出流。
/**
* Prevents this class from being instantiated.
*/
private System() {
}因为这个类的实例是由jvm来创建的,应用程序中没有必要创建该类的实例。
也没有为什么,就是这么规定的吧.还有可是构造函数私有,还有可能是接口.呵呵,说说而已.
Math类也类似,你只要使用这个类的static方法或者field就可以了,同样不需要创建对象.
为了禁止你创建对象,它们的构造方法都声明为private的了.
类 System
java.lang.Object
java.lang.System--------------------------------------------------------------------------------public final class Systemextends ObjectSystem 类包含一些有用的类字段和方法。它不能被实例化。 在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。
字段摘要
static PrintStream err
“标准”错误输出流。
static InputStream in
“标准”输入流。
static PrintStream out
“标准”输出流。