因为所有Java程序活动都发生在类中,所以从开始部分我们就已经在使用类了。当然,我们用到的只是极为简单的类,而类的主要功能还没有用到。正如你所见,类所蕴含的功能远比我们先前见到的有限示例要强大许多。
类是定义对象形式的模板,指定了数据,以及操作数据的代码。Java使用类的规范类构造对象(object),而对象是类的实例(instance)。因此,类实质上是一系列指定如何构建对象的计划。类是逻辑抽象,搞清楚这个问题非常重要。直到类的对象被创建时,在内存中才会有类的物理表示。
提示:组成类的方法和变量都称为类的成员(member)。数据成员也称为实例变量。
1.类的基本形式
当定义类时,要声明类确切的形式和特性.这是通过指定类所包含的实例变量和操作他们的方法来完成的.尽管简单的类可能只包含方法,或只包含实例变量,但是大多数实际的类一般都包含这两者.
使用关键字class创建类.类定义的基本形式如下所示:
class classname { //declear instance variables type var1; type var2; //declear methods type method1(parameters) { //body of method } ... }
尽管类的定义没有严格的语法规则,但是设计良好的类应该只定义唯一的逻辑实体.例如,用于存储姓名和电话号码一般不存储股市信息或其他无关信息.这里要说明的是:设计良好的类只应该组织逻辑相关的信息.将无关信息放在同一个类中很快就会破坏你的代码.
直到现在,我们使用的类只用到了一个方法:main().注意,类的基本形式中没有指定main()方法.只有当一个类是程序的运行起点时,才需要定义main()方法,而且某些类型的Java应用程序(例如applet)不需要main()方法.
2.定义类
为了说明类,我们将开发一个封装汽车信息的类,该类名为Vehicle,他存储了汽车的三个信息项:载客数量,油箱容量和耗油均值.
第一版的Vehible如下所示,他定义了三个实例变量:passengers,fuelcap和mpg.注意,vehicle不包含任何方法.因此,他是一个只包含数据的类
class Vehible { int passengers; int fuelcap; int mpg; }
class定义创建了一种新的数据类型.本例中,新的数据类型名为Vehicle.可以使用这个名称声明Vehicle类型的对象.切记,class声明只是类型描述,不创建任何实际的对象.因此,前面的代码不会创建任何Vehecle类型的对象.
创建Vehicle对象需要使用如下语句:
Vehicle minivan = new Vehicle();
在该语句执行以后,minivan会成为Vehicle的一个实例.因此,他就有了真实性.这里先不考虑语句细节.
每次创建类的实例时,都是在创建包含类定义的实例变量副本的对象.因此,每个Vehicle对象都会包含实例变量passengers,fuelcap和mpg的副本.要访问这些变量,可以使用点(.)运算符.点运算符将对象名和成员名链接在一起,点运算符的基本形式如下所示:
object.member
对象在点运算符的左边指定,成员则放在点运算符的右边.例如,将数值16赋给minivan的fuelcap变量:
minivan.fuelcap = 16;
总之,可以使用点运算符来访问实例变量和方法.