ant怎么读

更新时间:2022-11-25 09:04:32 阅读: 评论:0


2022年11月25日发(作者:蝙蝠吃什么)

Ants基础知识

以下资料为java培训为大家整理发布:

了解有关Java包、变量的概念,以及对象通过方法相互交互的方式。

在Wombat对象基础知识和Wombat类基础知识这两篇文章中,您学习

了关于对象、类、方法,以及语言和语法的基础知识。在初级开发人员系列的

第3部分,您将学习:如何编写依赖其他Java类(或JavaAPI)的Java应用

程序、什么是变量、如何使用变量,以及对象通过方法相互交互的方式。

本文中,需要在计算机中安装以下软件:

JavaSE软件

Greenfoot

本文面向对Java编程感兴趣的任何读者,无需编程经验。在开始阅读

本文之前,建议您阅读并遵循Wombat对象基础知识和Wombat类基础知识

中的有关说明。

在Ants中查看包和变量

在本教程中,通过Scenario菜单打开Ants场景,然后选择Open。应该

可以看到scenarios文件夹。选择ants并单击Open,如图1所示:

图1.打开Ants场景

Ants场景将显示在新窗口中。如果您在画面中没有看到沙色的界面,单击

场景主画面底下的CompileAll按钮。

单击Run,当蚂蚁离开蚁丘寻找食物堆时,请仔细观察。当蚂蚁发现食物

并运回蚁丘时,它们就创建了气味路径,或者相当于pheromone路径,随着更

多的蚂蚁发现了食物的路径并返回蚁丘,气味路径变得越来越清晰。和Wombat

场景一样,可以在场景中放置更多的蚂蚁或蚁丘。在ants场景中单击Run,

应该能看到如图2所示的内容。

图2.运行Ants场景

导入声明和包

右键单击Actor类下方的Ant对象,并选择OpenEditor。注意代码的

第一行:

importgreenfoot.*;//(World,Actor,GreenfootImage,and

Greenfoot);;import

tion;or;

这些语句称为导入声明。使用导入声明,Java应用程序可以使用JavaAPI

中已有的类、其他开发人员或自己创建的类。

第一个声明表明此应用程在greenfootpackage中。Java类通过包组织

在一起。您可以使用很多包,这就如同类可以处理数学问题、可在Collection

对象中组织数据和可用于过程的迭代或循环一样。换句话说,包通过函数对类

进行分类。基础类在包中,读取和写入类(输入和输出)在

包中,等等。必须在类的第一行声明包。

JavaAPI库非常庞大,其中提供了许多包供您使用。并且,您需要自己熟

悉有哪些类可用。为此,最好的方式是花些时间去阅读API文档。在本文中,

查阅ckage。在该页面的左侧列表中,请注意Random、List、

Collection和Iterator类。单击这些类的链接并阅读有关内容。看看您能否

指出它们在此应用程序中所完成的功能。注意为每个类所列出的方法,看看您

能否在AntsActorClass的代码中找出那些使用过的方法。您也可以在

Java教程中阅读更多有关这些类的信息。

变量和字段

随后,Ant类中将出现publicclassAntextendsActor行。从前面的

文章可知,这是类声明语句,它告诉您,此类名称为Ant,并且是从Actor类

继承下来的。

随后,你将在类中看到常规的语句,它在代码行之间用/**和*/符号标

记。用/**和*/标记的语句是开发人员插入的注释,这样,就能更容易理解

代码。必须用/**和*/或//符号标记注释,这样,编译器就不会尝试将这

些语句读取为Java代码。

请看以下代码块,阅读注释,该注释对代码描述的功能作出说明:

/**Randomnumbergenerator*/

privatestaticfinalRandomrandomizer=domizer();

/**Everyhowmanystepscanweplaceapheromonedrop?*/

privatestaticfinalintMAX_PH_LEVEL=18;

/**Howlongdowekeepdirectionafterfindingpheromones?*/

privatestaticfinalintPH_TIME=30;

/**Thespeedatwhichtheantmoves--inpixelsperupdate*/

privatestaticfinalintSPEED=3;

//Currentmovement

privateintdeltaX=0;

privateintdeltaY=0;

/**Locationofhomeanthill*/

privateAntHillhomeHill;

/**Indicatewhetherwehaveanyfoodwithus.*/

privatebooleancarryingFood=fal;

/**Howmuchpheromonedowehaverightnow?*/

privateintpheromoneLevel=MAX_PH_LEVEL;

/**Howwelldowerememberthelastpheromone--largernumber:more

recent.*/

privateintfoundLastPheromone=0;

所有的代码行都使用变量,并且这些特殊的变量在此Ant类中定义

了field。字段声明由三个部分构成,依次是:

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

字段类型

字段名称

但在理解字段之前,需要了解更多有关变量的内容。变量是什么?在

程序设计中,variable需要被赋值,该值要么改变,要么不改变。因为它们表

示的值经常发生改变,故称为变量。在上面的代码中,变量SPEED被赋值为3。

赋给变量的值写在等号的右边,变量写在左边。

这些特殊的变量定义了对象的状态。这就如同现实世界中的对象,现

实中,球的状态要么是红色的,要么是直径为3英尺。您也许会将变量dog的

状态赋值为睡着或醒的。对Ant类而言,所指的状态为:每只蚂蚁在某个方向

的移动速度为3个像素。

蚂蚁用Pheromones气味寻找食物,并提示其他蚂蚁哪里能收集食物。

在此应用程序中,Ant类定义了有关信息素的层次信息,以及蚂蚁在碰面时通

过字段变量如何操作。例如,MAX_PH_LEVEL字段定义了滴下一个信息素时,蚂

蚁能移动的最大步数;foundLastPheromone定义:通过使用高或低的编号,蚂

蚁如何适当地记忆信息素。

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

这些值将发生改变。

变量类型

您也许已经注意到,在该类和其他类的变量前面的关键字private、

static和final。这些关键字定义了变量的类型。无关键字的变量称作

instancevariables,该变量的值与类中的每个instance值都不相同——对每

个对象而言,也是这样。另一方面,staticvariable说明即使对类进行了多

次实例化,或者创建了实例,此变量仅存在一个副本。

Localvariables是那些仅在一个方法或代码块中使用的变量,这在本

文的前面已经提到了。

Accessmodifiers声明变量要么是public类型,要么是private类

型。在Food中,所有的变量都被声明为private类型,这说明仅能在Food类

中访问这些变量。如果变量被声明为public类型,则可以从所有类中访问该

变量。

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

现在已经声明了变量,接下来就可以在方法中使用变量,为场景做些工

作。在Ant类中向下滚动,浏览已定义的方法。您将注意到,现在,已经在方

法中使用了类开头所设置的变量。还可以看到,新变量可能仅用于某个特定的

方法。前面已经提到,这些变量称为localvariables。

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

checkFood方法:

publicvoidcheckFood()

{

Foodfood=(Food)getOneInterctingObject();

if(food!=null){

takeFood(food);

}

}

在此方法中,声明了一个Food型变量food。在Java编程中,

类名通常用大写字母表示,变量名用小写字母表示。通过方法,ants对象就能

与food对象交互,如图3.所示:

图与Food

文件看一下Food类。在Ants场景中,右键单击ActorClass下

面的Food类列表,选择OpenEditor。

实际上,food类只是放在那儿,并不起什么作用,只是通过自身的变

量定义Food。

privatestaticfinalintSIZE=30;

privatestaticfinalintHALFSIZE=SIZE/2;

privatestaticfinalColorcolor1=newColor(160,200,60);

privatestaticfinalColorcolor2=newColor(80,100,30);

privatestaticfinalColorcolor3=newColor(10,50,0);

privateintcrumbs=100;

注意:这些字段建立了food的size和color。通过Color类

定义Color,说明每个color都是一个对象,确切的color是通过RGBcolor

model定义的。用整数(int)创建food堆的size,表示某个特定color的

像素数目。所有的变量都是private类型,说明它们仅能在此类中使用,同时

它们又是static类型,因此,即使对此类进行多次实例化,也仅存在一个副

本。

向下滚动Color类,注意此类中的方法。场景运行后,蚂蚁发现并

搬运食物,食物的外观必须发生变化。为创建蚂蚁和食物堆之间的交互作用,

takeSome方法定义搬运食物的数量,并调用updateImage方法,这样,食物

堆的外观就会发生变化,同时我们也能看到这些变化。

randomCoord方法在食物堆图像上随机撒播彩色点,越来越多的彩色

点向中心聚集。此方法在食物堆中产生随机位置(放置小绿点表示食物个体小

块)。这是基于随机数的Gaussian分布函数(nextGaussian),该方法使数字

与0逼近的可靠性更高(也称作“常态分布”或“正态分布”)。结果,食物小

块并不是均匀地分布在矩形画面表面,很可能是向中间聚集,这样就形成了更

多的堆。

结束语

在本文中,您学习了包如何组织类,以及如何在类的头部包含import语

句。还学习了有关变量及其类型,以及对象如何通过方法与其他类交互的内容。

在Greenfoot中打开其他场景,了解了每个场景对象的类代码。目睹了什么是

变量定义、什么是方法之间的交互,以及通过查看代码学习了其他一些内容。

尝试并改变其中的一些方法,看看您能否改变对象的行为。您也可以在

Internet上查看有关Greenfoot更多场景的信息,有些场景非常复杂且精致,

不妨把它们下载下来。

本文发布于:2022-11-25 09:04:32,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/17550.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:鲣鸟
下一篇:sanitation
标签:ant怎么读
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图