也许理解类的最重要的事情就是它定义了一种新的数据类型。一旦定义后,就可以用这种新类型来创建该类型的对象。
这样,类就是对象的模板(template),而对象就是类的一个instance。既然一个对象就是一个类的实例,所以你经常看到object和instance这两个词可以互换使用。
当你定义一个类时,你要声明它准确的格式和属性。你可以通过指定它包含的数据和操作数据的代码来定义类。尽管非常简单的类可能只包含代码或者只包含数据,但绝大多数实际的类都包含上述两者。你将看到,类的代码定义了该类数据的接口。
使用关键字class来创建类。在这一点上,类实际上被限制在它的完全格式中。类可以(并且常常)是一个组合体。类定义的通用格式如下所示:
class classname {
type instance-variable1;
type instance-variable2;
// ...
type instance-variableN;
type methodname1(parameter-list) {
// body of method
}
type methodname2(parameter-list) {
// body of method
}
// ...
type methodnameN(parameter-list) {
// body of method
}
}
在类中,数据或变量被称为实例变量(instance variables),代码包含在方法(methods)内。定义在类中的方法和实例变量被称为类的成员(members)。在大多数类中,实例变量被定义在该类中的方法操作和存取。这样,方法决定该类中的数据如何使用。 定义在类中的变量被称为实例变量,这是因为类中的每个实例(也就是类的每个对象)都包含它自己对这些变量的拷贝。这样,一个对象的数据是独立的且是惟一的。关于这一点我们将马上讨论,但是这是一个重要的概念,因此要早一点学习。
所有的方法和我们到目前为止用过的方法main()的形式一样。但是,以后讲到的方法将不仅仅是被指定为static或public。注意类的通用格式中并没有指定main()方法。Java类不需要main( )方法。main()方法只是在定义您程序的起点时用到。而且,Java小应用程序也不要求main( )方法。
注意:如果你有C++编程经验请注意,类的声明和方法的实现要存储在同一个地方并且不能被单独定义。由于所有类的定义必须全部定义在一个单个的源文件中,这有时会生成很大的.java文件。在Java中设计这个特征是因为从长远来说,在一个地方指明,定义以及实现将使代码更易于维护。