在现实世界中,你会经常发现很多独立对象都属于相同类型。可能有数千辆自行车,它们的制造商和型号都相同。每辆自行车都出于相同的蓝图,因此包含相同的组件。在面向对象的术语中,我们说你的自行车是被称为自行车的对象类(class of object)的一个实例(instance)。类(class)是创建独立对象的蓝图。
下面的Bicycle类是自行车的一个实现:
class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;

cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:"+cadence+"
speed:"+speed+" gear:"+gear);
}
}
尽管你不熟悉Java编程语言的语法,但是这个类的设计基于前面对自行车对象的讨论。字段cadence、speed和gear代表对象的状态,而方法(changeCadence、changeGear、speedUp等)定义对象和外部世界的交互。
也许你已经注意到,Bicycle类没有包含main方法。这是因为它不是完整的应用程序;它只是可能用于其他应用程序中的自行车的蓝图。创建和使用新的Bicycle对象的责任属于你的应用程序中的其他一些类。
下面是BicycleDemo类,它创建两个独立的Bicycle对象并且调用它们的方法:
class BicycleDemo {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
这段测试代码输出两辆自行车的脚踏板步调、速度和挡位:
cadence:50 speed:10 gear:2
