在现实世界中,经常会发现许多单个对象都是同类。有可能成千上万条狗都是一样的品种,比如都是哈士奇或者藏獒。每种类型的狗都具有相同的行为。在面向对象的术语中,我们将某条狗称为狗对象类(class of objects)的实例(instance)。类(class)就是创建单个对象的品种。
下面是一个Dog(狗)类的实现:
字段color和name是对象的状态,方法bark和wag定义了与外界的交互。
你可能已经注意到,Dog类不包含main方法。这是因为它不是一个完整的应用程序。这里只是定义了Dog这个类,并可能会在应用程序中使用。创建和使用新的Dog对象是应用程序中其他类的责任。
下面的DogDemo类创建两个单独的Dog对象,并调用其方法:
在这个例子中,类的名称是Dog,Dog对象的名称分别是dog1和dog2,可向Lucy对象发出的请求包括叫唤(bark)、摇尾(wag)。我们是通过使用new关键字来新建对象的。为了向对象发送一条消息,我们列出对象名(dog1、dog2),再用一个句点符号(.)把它同消息名称(bark、wag)连接起来。从中可以看出,使用一些预先定义好的类时,我们在程序里采用的代码是非常简单和直观的。
执行程序,输出为:
Black Lucy barking... Black Lucy wagging... White Lily barking... White Lily wagging...