在现实世界中,您经常会发现许多同种个体。可能还有成千上万的自行车,都具有相同的品牌和型号。每辆自行车都是根据相同的设计图制造的,因此包含相同的组件。用面向对象的术语来说,您的自行车是称为自行车这类对象(class of objects实例(instance类(class是创建单个对象的蓝图
    以下 Bicycle类是自行车的一种可能实现:

    1. class Bicycle {
    2. int cadence = 0;
    3. int speed = 0;
    4. int gear = 1;
    5. void changeCadence(int newValue) {
    6. cadence = newValue;
    7. }
    8. void changeGear(int newValue) {
    9. gear = newValue;
    10. }
    11. void speedUp(int increment) {
    12. speed = speed + increment;
    13. }
    14. void applyBrakes(int decrement) {
    15. speed = speed - decrement;
    16. }
    17. void printStates() {
    18. System.out.println("cadence:" +
    19. cadence + " speed:" +
    20. speed + " gear:" + gear);
    21. }
    22. }

    Java编程语言的语法对您来说似乎很新,但是此类的设计是基于先前对自行车对象的讨论。字段cadencespeedgear表示该对象的状态,并且这些方法(changeCadencechangeGearspeedUp等)定义其与外界交互。
    您可能已经注意到,Bicycle类不包含main方法。那是因为它不是一个完整的应用程序。它只是应用程序中可能使用的自行车的蓝图。创建和使用新的Bicycle对象的责任,属于应用程序中的其他一些类。
    这是一个创建两个单独的Bicycle对象,并调用它们的方法的BicycleDemo类:

    1. class BicycleDemo {
    2. public static void main(String[] args) {
    3. // Create two different
    4. // Bicycle objects
    5. Bicycle bike1 = new Bicycle();
    6. Bicycle bike2 = new Bicycle();
    7. // Invoke methods on
    8. // those objects
    9. bike1.changeCadence(50);
    10. bike1.speedUp(10);
    11. bike1.changeGear(2);
    12. bike1.printStates();
    13. bike2.changeCadence(50);
    14. bike2.speedUp(10);
    15. bike2.changeGear(2);
    16. bike2.changeCadence(40);
    17. bike2.speedUp(10);
    18. bike2.changeGear(3);
    19. bike2.printStates();
    20. }
    21. }

    此测试的输出显示两辆自行车的结束踏板节奏,速度和齿轮:

    1. cadence:50 speed:10 gear:2
    2. cadence:40 speed:20 gear:3