快速业务通道

Java Ants基础知识 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
any steps can we place a pheromone drop? */ private static final int MAX_PH_LEVEL = 18; /** How long do we keep direction after finding pheromones? */ private static final int PH_TIME = 30; /** The speed at which the ant moves -- in pixels per update */ private static final int SPEED = 3; // Current movement private int deltaX = 0; private int deltaY = 0; /** Location of home anthill */ private AntHill homeHill; /** Indicate whether we have any food with us. */ private boolean carryingFood = false; /** How much pheromone do we have right now? */ private int pheromoneLevel = MAX_PH_LEVEL; /** How well do we remember the last pheromone -- larger number: more recent.  */ private int foundLastPheromone = 0;

所有的代码行都使用 变量,并且这些特殊的变量在此 Ant 类中定义了 field。字段声明由三个部分 构成,依次是:

零个或多个修饰符,例如 public 或 private

字段类型

字段名称

但在理解字段之前,需要了解更多有关变量的内容。变量是什么?在程序设计中,variable 需要被赋 值,该值要么改变,要么不改变。因为它们表示的值经常发生改变,故称为变量。在上面的代码中,变量 SPEED 被赋值为 3。赋给变量的值写在等号的右边,变量写在左边。

这些特殊的变量定义了对象的状态。这就如同现实世界中的对象,现实中,球的状态要么是红色的, 要么是直径为 3 英尺。您也许会将变量 dog 的状态赋值为睡着或醒的。对 Ant 类而言,所指的状态为 :每只蚂蚁在某个方向的移动速度为 3 个像素。

蚂蚁用 Pheromones 气味寻找食物,并提示其他蚂蚁哪里能收集食物。在此应用程序中,Ant 类定义 了有关信息素的层次信息,以及蚂蚁在碰面时通过字段变量如何操作。例如,MAX_PH_LEVEL 字段定义了 滴下一个信息素时,蚂蚁能移动的最大步数;foundLastPheromone 定义:通过使用高或低的编号,蚂蚁如 何适当地记忆信息素。

通常,将变量的初始值设为 0 ,或为空。然后,随着用户运行程序,这些值将发生改变。

Java Ants基础知识(4)

时间:2011-11-09

变量类型

您也许已经注意到,在该类和其他类的变量前面的关键字 private、static 和 final。这些关键字定 义了变量的类型。无关键字的变量称作 instance variables,该变量的值与类中的每个 instance 值都 不相同——对每个对象而言,也是这样。另一方面,static variable 说明即使对类进行了多次实例化, 或者创建了实例,此变量仅存在一个副本。

Local variables 是那些仅在一个方法或代码块中使用的变量,这在本文的前面已经提到了。

Access modifiers 声明变量要么是 public 类型,要么是 private 类型。在 Food 中,所有的变量 都被声明为 private 类型,这说明仅能在 Food 类中访问这些变量。如果变量被声明为 public 类型, 则可以从所有类中访问该变量。

Ant 对象通过方法与 Food 对象进行交互

现在已经声明了变量,接下来就可以在方法中使用变量,为场景做些工作。在 Ant 类中向下滚动,浏 览已定义的方法。您将注意到,现在,已经在方法中使用了类开头所设置的变量。还可以看到,新变量可 能仅用于某个特定的方法。前面已经提到,这些变量称为 local variables。

蚂蚁场景中的点用于收集食物并将其运回蚁丘。注意 Ant 类中的 checkFood 方法:

public void checkFood()

  {

    Food food = (Food) getOneIntersectingObject(Food.class);

    if (

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号