Part 2:Bug Variations - 2015年软件工程实训 - SoYa Wiki1
在本篇关于“Bug Variations”的2015年软件工程实训内容中,我们主要讨论了Bug类及其扩展,以及观察这些行为的“runner”类。以下是对标题和描述中涉及知识点的详细说明: 1. **Bug类的方法**: Bug类提供了三个关键方法来定义虫子如何移动和转向: - `canMove()`:该方法检查虫子是否能够向前移动到一个空位置或包含花朵的位置。 - `move()`:如果虫子可以移动,它会前进并将一朵花放在它原来所在的位置。 - `turn()`:虫子向右转45度,但不改变其当前位置。这些方法在`act()`方法中被调用。 2. **虫子的行为**: 虫子的行为由其`act()`方法控制,如果虫子可以移动,它将执行`move()`;否则,执行`turn()`。 3. **BoxBug类**: - **sideLength实例变量**:这个变量通常用于表示BoxBug形成的正方形模式的边长。它决定了BoxBug在移动时形成的方块大小。 - **steps实例变量**:这个变量跟踪BoxBug当前的步数或移动次数。当BoxBug完成一个完整的边长移动后,它与sideLength的关系会影响到`turn()`方法的调用。 4. **turn方法的调用**: 当`steps`等于`sideLength`时,`turn()`方法被调用两次,这是因为BoxBug需要完成90度的转弯,以便开始绘制正方形的下一个边。 5. **move方法的继承**: BoxBug类虽然没有自己的`move()`方法,但它继承了父类Bug的`move()`方法,因此可以直接调用,以执行虫子的移动行为。 6. **BoxBug的模式大小**: 一个BoxBug构造完成后,其正方形模式的大小是否会保持一致取决于`sideLength`的初始值。如果sideLength不变,则模式大小保持不变;如果sideLength在运行时可变,则模式大小也会变化。 7. **steps为零的情况**: `steps`的值会在BoxBug开始移动之前或每次完成一个正方形的绘制后变为零。 8. **Runner类**: Runner类如BugRunner和BoxBugRunner是观察actor行为的关键。它们创建了一个ActorWorld对象,将演员(如Bug、BoxBug、Rock等类的实例)放入网格中,并展示世界的状态。`add`方法的重载使得可以将不同类型的actor添加到网格中。 这些知识点涵盖了基础的面向对象编程概念,如类的方法、继承和实例变量,以及如何通过runner类来模拟和观察对象的行为。在实际的软件工程实训中,理解并应用这些知识点有助于开发出更加复杂和动态的程序。
- 粉丝: 891
- 资源: 325
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- ORACLE数据库管理系统体系结构中文WORD版最新版本
- Sybase数据库安装以及新建数据库中文WORD版最新版本
- tomcat6.0配置oracle数据库连接池中文WORD版最新版本
- hibernate连接oracle数据库中文WORD版最新版本
- MyEclipse连接MySQL的方法中文WORD版最新版本
- MyEclipse中配置Hibernate连接Oracle中文WORD版最新版本
- MyEclipseTomcatMySQL的环境搭建中文WORD版3.37MB最新版本
- hggm - 国密算法 SM2 SM3 SM4 SM9 ZUC Python实现完整代码-算法实现资源
- SQLITE操作入门中文WORD版最新版本
- Sqlite操作实例中文WORD版最新版本
评论0