首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.2  类是什么

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

下面的Bicycle类是自行车的一个实现:

class Bicycle {

  int cadence = 0;

  int speed = 0;

  int gear = 1;

  void changeCadence(int newValue) {

    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

cadence:40 speed:20 gear:3

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论