Java 游戏开发:关于Java面向对象的知识( 四)
作者:互联网
这是上期教程:Go To It!
新年过去了,鸽了几天的教程,今天我们开始继续学习(新年快乐~)
游戏人物类的实现
对于一个游戏人物而言,我们可以想到以下的字段:
- 最大血量
- 当前血量
- 名称
- 装备数组(也可以是列表但是可能我们现在还不知道什么是列表…)
- 当前所在地图
- 当前所在坐标数组
- 等级
- 是否死亡
我们想一想那些字段我们是可以封装成属性的
最大血量 好像不用 因为 最大血量 只会因为 装备与等级的数值变换而改变其大小,我们可以将其设置成隐私(私有)字段,但是将其封装成属性还是没有那个必要
当前血量 可以~ 因为每次受伤我们都要检测他的血量是否低于0 如果低于0了 人物就死亡了 每次回血的时候 我们还需要看看 血量是不是超过了最大的血量 超过了就限制一下 所以我们很有必要将其设置成属性
名称 装备 地图 坐标 等级 都可以当做字段对待,不需要进行封装(如果你乐意也可以)
**但是为了确保数据的完整性,你可以给上面所有的字段考虑进行私有化 **
方法的话我们可以设置这些
- 技能(多个也没毛病)- 人物的动作与超能力
- 升级 (当然你可以把等级封装成属性,升级就给这个属性传个1就可以了,看你的习惯了) 等级的提升往往会导致人物血量的上限有所提升
- 移动 - 地图或者坐标的改变
- 。。。。 很多很多 看你的游戏需要了
我们来敲敲代码看看可以实现吗?
public class chara {
private int maxHp;
private int _nowHp;
public String name;
public String[] arrayEquip;
public String nowArea;
public int[] nowPosition;
public int level;
public boolean isDead = false;
public int get_nowHp() {
return _nowHp;
}
public void set_nowHp(int hpValue){
// params: hpValue: 对血量影响的值
int temp = _nowHp - hpValue;
if (temp > 0) _nowHp = temp; // 血量正常 的时候 就直接 给她就完事了
else if(temp > maxHp) _nowHp = maxHp; // 血量 大于 最高血量 那就说明 你回血回复满了 所以需要进行 上限限制
else if(temp < 0) isDead = true; // 人物死亡~
}
public int skillA(){
return 12;// 12 是伤害
}
}
this 详解
上期教程我们谈到了this 但是也只是草草掠过 现在我们再来详细讲讲this的作用
public class student {
private String _name; // 姓名
private String _id; // 考号
private String _classroom; // 考场
public student(){
// 无参数的构造方法
}
public student(String _id,String _name,String _classroom){
// student 的 有参数构造方法
System.out.print(_id);
}
}
在代码中我们创建了一个学生类 在他的构造方法里面 我们打印了_id这个变量 由于作用域的影响 JVM会先打印参数id的字面值,而不是student类字段的字面值
我们要记得一点,这点是非常重要的,你需要琢磨琢磨
在具有与类字段相同名称的形参或者局部变量的方法(包括构造)类的字段会被隐藏。
当我们需要在具有与类字段同名称的方法使用类字段的值,我们可以在类字段前面加上 this ,我们知道this就是在类的内部创建了一个引用自身实例对象的变量 但是与外部对象不同的是,this关键字可以很轻松的访问类的私有部分
我们对之前的代码进行升级,得到了
public class student {
private String _name; // 姓名
private String _id; // 考号
private String _classroom; // 考场
public student(){
// 无参数的构造方法
}
public student(String _id,String _name,String _classroom){
// student 的 有参数构造方法
this._id = _id;
this._name = _name;
}
}
这些就差不多是类的基础知识了,在之后的学习中 我们还需要继续深入了解类的其他作用,以下是类基础的补充部分:
类的补充
标识符的命名规范
类的命名规范
- 使用间接的表示类的内容的名称 Car - 汽车类
- 单词的首字母记得大写,之后的字母小写 Person - 人物类
- 由多个单词排列的话,每个单词的首字母大写 NetworkManager - 网络管理类
方法的命名规范(构造方法除外)
- 一个单词就直接小写 move
- 多个单词 那么第一个单词全部小写外 后面的单词 首字母都大写 moveMap
还有很多 感兴趣的话就去这里看看:Java_命名规范
标签:Java,String,血量,private,id,面向对象,student,public,游戏 来源: https://blog.csdn.net/tc9527_/article/details/113928682