Java入门4
Java入门4类
类是Java等面向对象语言的基础单位——一个定义了从类生成的实例(instance)中的数据和行为的关系的模板。当你实例化(instantiate)一个类以后便得到一个该类的对象(object),拥有类的全部数据和行为。一般我们把类和对象的数据称为变量,把行为称为方法。Java语言使用class关键词来定义一个类,之后的一对大括号定义了该类的变量和方法。我们的HelloWorldApp类没有变量,只有一个main方法。
类和对象的关系很好理解——类是一个抽象概念,好比“人”,而对象是一个具体的人,比如小布什、普京,他们作为人都有七情六欲(变量),都会衣食住行(方法)。
main方法
每个Java应用程序都必须包含一个main方法,语法如下:
public static void main(String[] args)
main方法包含三个修饰词:
(1)public:表示main方法可以由任何对象调用。
(2)static:表示这是一个类方法,区别于实例方法,与具体的对象无关。
(3)void:表示main方法没有返回值。
main方法是Java语言中非常特殊的方法,类似于C/C++中的main函数。当Java解析器执行Java应用程序,它首先执行这个Java类的main方法。你应该把程序的逻辑,比如打印Hello World!字样,写在main里面。
main方法有一个参数,即args,它是一个字符串数组,操作系统通过这个机制传递命令行参数。由于Hello World!程序忽略命令行参数,所以这里不展开讨论了。
四、使用类和对象
让我们以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有许多值得尊敬的理念,所谓没有规矩不成方圆,你应该理解并且贯彻它,这样才能够写出漂亮的代码。伫倚危楼风细细,望极春愁,黯黯生天际。
草色烟光残照里,无言谁会凭阑意?
拟把疏狂图一醉,对酒当歌,强乐还无味。
页:
[1]