让我们以Hello World!程序来详细解释类和对象的使用。
Hello World!程序很小,只定义了最基本的HelloWorldApp类。虽然如此,它的确使用了其他类??System类:
System.out.println("Hello World!");
System类是Java API的成员之一,提供了操作系统无关地操作操作系统相关功能的能力,很拗口,不过的确如此。out是System的类变量(与前面提到的类方法的意思一致)。实际上,System的所有变量都是类变量,所有方法都是类方法??都是用static修饰的,你可以通过“.”操作符直接访问。比如,System类有一个getProperty类方法可以获取操作系统属性,至于具体是什么操作系统,你无需事必躬亲了。若把Hello World!程序的main方法修改成:
public static void main(String[] args) {
System.out.print("Hello ");
System.out.println(System.getProperty("user.name"));
}
运行程序,便会得到“Hello Gary Chan”的结果。呵呵,我们的程序可以认人了,长大了许多啊!
下面说说类变量的原理。Java应用程序装载System类的时候,一看到out是System的类变量,便自动初始化PrintStream类得到一个PrintStream对象,并且把这个对象赋给out变量。从而,你调用out的println方法,实际上是调用一个对象的实例方法。这样,Hello World!字样便输出了。
总结一下类变量、类方法和实例变量、实例方法的关系:
(1)类变量或者类方法是和特定的类相关的,Java将给每个类分配一个类变量,无论这个类有多少实例。可以通过类名来操作类变量和类方法。
(2)实例变量或者实例方法是与特定的对象(类的实例)相关,每个对象都有自己专用的实例变量。可以通过实例名来操作实例变量和实例方法。
这回我们把Hello World!程序剖析得淋漓尽致。虽然一个小小的Java程序就有那么多门道,但是,不经历风雨怎么见彩虹,希望你能够透彻感受Java语言的点滴道理,从而快速步入Java的圣堂。
不要小看Java文档的重要性。Java有许多值得尊敬的理念,所谓没有规矩不成方圆,你应该理解并且贯彻它,这样才能够写出漂亮的代码。
……