【Q】类和对象:游戏角色开发(角色介绍)
案例情景:某公司要开发新游戏,请用面向对象的思想设计英雄类、怪物类和武器类。
编写测试类,创建英雄对象、怪物对象和武器对象,并输出各自的信息。
其中设定分别如下:
1.英雄类
属性:英雄名字、生命值。
方法:输出基本信息。
2、怪物类
属性:怪物名字、生命值、类型。
方法:输出基本信息。
3.武器类
属性:武器名字、攻击力。
方法:输出基本信息。
一、创建实体类
1.我们已经学过抽象类和继承,所有我们可以从高一层的角度来设计实体类(首先根据各种角色所具有的共同的特征抽象出一个抽象类)
抽象的角色类:
/**
* 游戏角色:抽象类
*
* @author Administrator
*
*/
public abstract class Role {
private String role;// 角色名称
private String name;// 角色姓名
// 封装属性 public String getRole() {
return role;
} public void setRole(String role) {
this.role = role;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} // 介绍方法
public abstract void showInfo();
}
2.继承抽象类,创建三个具体的角色类
(1)英雄类
/**
* 英雄类
*
* @author Administrator
*
*/
public class Hero extends Role {
private int health;// 健康值 public Hero() {
super();
this.setRole("英雄");
this.setName("李小侠");
this.setHealth(300);
} @Override
public void showInfo() {
System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n姓名:" + this.getName() + ",生命值:" + this.getHealth());
} public int getHealth() {
return health;
} public void setHealth(int health) {
this.health = health;
} }
(2)武器类
/**
* 武器类
*
* @author Administrator
*
*/
public class Weapons extends Role {
private int attack;// 攻击力 public Weapons() {
super();
this.setRole("武器");
this.setName("死亡镰刀");
this.setAttack(12);
} @Override
public void showInfo() {
System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n武器名:" + this.getName() + ",攻击力:" + this.getAttack());
} public int getAttack() {
return attack;
} public void setAttack(int attack) {
this.attack = attack;
} }
(3)怪物类
/**
* 怪物类
*
* @author Administrator
*
*/
public class Monster extends Role {
private int health;// 健康值
private String type;// 类型 public Monster() {
super();
this.setRole("怪物");
this.setName("小龟");
this.setHealth(300);
this.setType("潜水类");
} public int getHealth() {
return health;
} public void setHealth(int health) {
this.health = health;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} @Override
public void showInfo() {
System.out.println("我是" + this.getRole() + ",我的基本信息如下:\n姓名:" + this.getName() + ",生命值:" + this.getHealth()
+ ",类型:" + this.getType()); } }
二、创建测试类(主类:角色介绍)
方法的调用:在主方法创建角色实例,用实力对象调用方法
/**
* 游戏角色介绍测试类
*
* @author Administrator
*
*/
public class Main { public static void main(String[] args) {
// 创建角色实例
Hero hero = new Hero();
Weapons weap = new Weapons();
Monster monster = new Monster();
// 角色介绍
hero.showInfo();
weap.showInfo();
monster.showInfo(); } }
三、测试修改Bug最终展示
效果如下图:

【Q】类和对象:游戏角色开发(角色介绍)的更多相关文章
- 【Cocos2d-X游戏实战开发】捕鱼达人之单例对象的设计(二)
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为cocos2d-x-2.1.5) 博主发现前两个系列的学习教程被严重抄袭,在这里呼吁大家请尊重开发者的劳动成果, 转载的时候请务必注 ...
- Python游戏引擎开发(五):Sprite精灵类和鼠标事件
本次来实现Sprite类和鼠标事件. 说起这个Sprite啊,涉及过2D游戏研究领域的看官应该都听说过它. 它中文原意是"精灵",只是在不同人的眼中,它所表示的意义不同. 比方说在 ...
- mybatis10 实现类代理对象开发
mapper实现类代理对象开发 要想让mybatis自动创建dao接口实现类的代理对象,必须遵循一些规则: SqlSession sqlSession = sqlSessionFactory.open ...
- 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图
面向对象思想概述.开发设计特征 1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一 ...
- Python开发基础-Day17面向对象编程介绍、类和对象
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.主要应用在一旦完成很少修改的地方,如linux ...
- 【iOS开发-72】设置状态栏的两种方式、程序生命周期以及更好地理解几大类(对象)之间的关系
(1)设置状态栏的2种方式 --第一种方式就是我们在控制器中设置,系统默认就是交给视图控制器去管理的,这样不同视图控制器能够自己定义不同的状态栏例如以下: -(BOOL)prefersStatusBa ...
- java开发中的常见类和对象-建议阅读时间3分钟
1.Dao 数据访问对象 此对象用于访问数据库.实现类一般用于用于操作数据库! 一般操作修改,添加,删除数据库操作的步骤很相似,就写了一个公共类DAO类 ,修改,添加,删除数据库操作时 直接调用公共类 ...
- OC开发系列-类与对象
面向对象 面向对象思想是一种解决问题的思想, 不在是面向过程的去思考问题怎样解决.面向对象解决问题时首先要考虑需要找几个对象能解决这个问题. 常见的概念: * Object Oriented 面向对象 ...
- 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍
在国内,如果你没有听说过<王者荣耀>,那你一定是古董级的人物了. <王者荣耀>(以下简称“农药”),专注于移动端(Android.IOS)的MOBA游戏.笔者看到这么火爆,就萌 ...
- 类、对象(java基础知识六)
1.Java约定俗成 java约定俗成 1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写 2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用 ...
随机推荐
- memcache 未授权访问漏洞
memcache是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以开放在外网的memcache服务很容易被攻击者扫描发现,通过命令交互可直接读取memcache中的敏感信息. 修 ...
- JAVA GET 和 POST 的区别
GET 和 POST 的区别 GET请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:/test/demo_form.asp?name1=value1&name2=val ...
- Angular 2: 404 error occur when I refresh through the browser [duplicate]
https://stackoverflow.com/questions/35284988/angular-2-404-error-occur-when-i-refresh-through-the-br ...
- 【算法笔记】B1015 德才论
1015 德才论 (25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君 ...
- 64位的notepad++没有插件管理
下载的64位的notepad++没有插件管理:需要自己下载这个插件: - plugin manager的下载地址为:https://github.com/bruderstein/nppPluginMa ...
- B. Cover Points Codeforces Round #511 (Div. 2)【数学】
题目: There are nn points on the plane, (x1,y1),(x2,y2),…,(xn,yn)(x1,y1),(x2,y2),…,(xn,yn). You need t ...
- pip不是内部或外部命令也不是可运行的程序或批处理文件的问题
当我用windows电脑 pip install missingno 时 它居然会报pip不是内部或外部命令也不是可运行的程序或批处理文件的问题! 解决方法: 1)找到 pip.exe 所在位置,一般 ...
- SCU - 4439 最小点覆盖
题意:求最小的染色顶点数满足所有的边至少有个一端点被染色 2015四川省赛,过题数17/120+,还以为是什么难题,这不就是裸的二分图最小点覆盖吗.. 掏出了尘封一年的破板子 #include< ...
- Hadoop基础入门
一.hadoop是什么? (1)Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式.Hadoop= ...
- Tomcat启动分析
[转自] http://docs.huihoo.com/apache/tomcat/heavyz/01-startup.html 1 - Tomcat Server的组成部分 1.1 - Server ...