用面向对象继承的思想设定游戏中怪物的属性和方法
来源:互联网 发布:手机看pdf软件 编辑:程序博客网 时间:2024/05/22 17:36
例:某公司要开发新游戏,请用面向对象的思想,设计游戏中的蛇怪和蜈蚣精设定
1) 蛇怪类:
属性包括:怪物名字,生命值,攻击力
方法包括:攻击,移动(曲线移动),补血(当生命值<10时,可以补加20生命值)
2) 蜈蚣精类:
属性包括:怪物名字,生命值,攻击力
方法包括:攻击,移动(飞行移动)
要求
1) 分析蛇怪和蜈蚣精的公共成员,提取出父类—怪物类
2) 利用继承机制,实现蛇怪类和蜈蚣精类
3) 攻击方法,描述攻击状态。内容包括怪物名字,生命值,攻击力
4) 编写测试类,分别测试蛇怪和蜈蚣精的对象及相关方法
5) 定义名为mon的包存怪物类,蛇怪类,蜈蚣精类和测试类
父类:
package mon;public class Monster {public String mname;public int hp;public int atk;public void attack() {System.out.println("攻击");}public void move() {System.out.println("移动");}}
子类(蛇怪):package mon;public class Basilisk extends Monster{public Basilisk(String mname,int hp,int atk){this.mname=mname;this.hp=hp;this.atk=atk;}public void attack(){System.out.println("怪物"+mname+"展开攻击\n当前生命值是:"+hp+"攻击力是:"+atk);if(hp<10){hp=hp+20;System.out.println("实施大蛇补血术...当前生命值是"+hp);}}public void move(){System.out.println("我是"+super.mname+",我走S形路线");}}
子类(蜈蚣精):package mon;public class Centipade extends Monster{public Centipade(String mname,int hp,int atk){this.mname=mname;this.hp=hp;this.atk=atk;}public void attack(){System.out.println("怪物"+mname+"展开攻击\n当前生命值是:"+hp+"攻击力是:"+atk);}public void move(){System.out.println("我是"+super.mname+",我在空中移动");}}
测试类:package mon;public class Test {public static void main(String[] args) {Basilisk b=new Basilisk("蛇怪", 5, 20);b.attack(); b.move();Centipade c=new Centipade("蜈蚣精", 60, 15);c.attack();c.move();}}
运行结果:怪物蛇怪展开攻击
当前生命值是:5攻击力是:20
实施大蛇补血术...当前生命值是25
我是蛇怪,我走S形路线
怪物蜈蚣精展开攻击
当前生命值是:60攻击力是:15
我是蜈蚣精,我在空中移动
阅读全文
0 0
- 用面向对象继承的思想设定游戏中怪物的属性和方法
- 用面向对象的思想探讨游戏“魔兽争霸”(2)-继承和多态的应用(修改版)
- Java继承中属性、方法和对象的关系
- Java继承中属性、方法和对象的关系
- Java继承中属性、方法和对象的关系
- Java继承中属性、方法和对象的关系
- Java继承中属性、方法和对象的关系
- java面向对象中对属性和方法的封装
- js面向对象的属性和方法
- 高级面向对象之 面向对象中常用的属性和方法
- 用面向对象的思想探讨游戏“魔兽争霸”(1)
- (40)面向对象的三大特性继承性(41)面向对象中常用的关键字和魔术方法
- 面向对象_继承中构造方法的关系
- 面向对象_继承中构造方法的注意事项
- C语言面向对象的封装、继承和多态的思想
- java面向对象的继承以及方法重写和重载
- 《C++面向对象》在C++中子类继承和调用父类的构造函数方法
- 面向对象中属性和方法差异
- ios-关于cell的模板
- python 的 Pillow实现图片对比
- 简易手动部署多节点的Openstack(L版)——陆(安装Dashboard服务)
- JS/HTML格式化显示
- JavaScript运算
- 用面向对象继承的思想设定游戏中怪物的属性和方法
- 【Java集合源码剖析】Java集合框架
- Genymotion模拟器sd卡的位置
- 自定义DialogFragment
- 优雅的JavaScript-数据类型
- DD测磁盘读写性能
- idea搭建非maven项目需要注意的问题。
- iconv() [function.iconv]: detected an illegal character in input string
- Hdu 6038 Function【思维+强连通找环】