使用java实现面向对象编程,
00-1010一、思路二。代码实现设计一个士兵角色的游戏系统;每个角色都有自己的名字,等级,生命力hp,攻击atk,防御def;士兵有共同的攻击行为,是根据自己的攻击力减去被攻击对象的防御力得到对方的血量来实现的;请设计这个系统中有哪些类,有哪些属性和行为,有哪些关系,调用main方法检查效果。
00-1010首先我们知道系统中有一个士兵的角色名叫士兵。士兵的角色有自己的名字,军衔,生命力,攻击力,防御力。我们必须区分不同的类型。士兵的行为是常见的攻击。行为:方法。由此我们知道,Soldier是一个类,正在用代码实现。
00-1010当我们知道Soldier属于一个类的时候,应该用面向对象来写吗?面向对象的三个要点是什么:1、类2、属性3、方法。那么当我们知道面向对象的三个关键点的第一个是类的时候。首先使用的是第一个用户自定义类,我们来实现代码。
Public class Legend {//大写字母,public static void main(string[]args){ } } public class vendor {//大写字母,property//method}我们在生成自定义类的时候,一开始就说了面向对象的三个关键点是由1、类2、属性和3组成的。三种构成,那么我们知道士兵角色有自己的名字,等级,生命力,攻击力,防御力,这是一种属性。然后要填写名字,等级,生命力,攻击力,防御力等属性。
公共类Legend的首字母{//大写,见名称和含义,公共静态void main (string [] args) {}}公共类发起人{//大写,见名称和含义//属性,公共字符串名称;//命名public int级别;//level public int HP;//vitality public int atk;//攻击力public int def//Defense//Method}当我们已经创建了士兵这个角色,是否应该创建这个角色?这时候就需要用方法了。当我们使用构造函数时,默认情况下类会生成一个无参数的结构。无参数:无参数,构造函数是函数,与类名3360相同。这是为了防止我们在写内容的时候报错。详情参见图1和图2。在编写时间方法的时候,也可以快速生成参数化结构的内容。详情参见图2、图3和图4。
public class Legend { public static void main(String[]args){ Soldier杨可=新战士(杨可,50,500,68,2);//士兵士兵在//杨可的实例,士兵张三=新士兵(张三,50,400,68,4);//Soldier实例//张三} } public class Soldier {//property public String name;//命名public int级别;//level public int HP;//vitality public int atk;//攻击力public int def//defense force//method public solver(){//无参数构造} publicsolver (string name,int level,int HP,int atk,int def){//参数构造this.name=name//命名this.level=level//level this . HP=HP;//vitality this . atk=atk;//攻击力this.def=def//国防军}}图一:
图2:
图3:
图4:
图5:
当我们生成了两个不同玩家的士兵,那么每个士兵
都有普通攻击的行为,在最开始的时候我们都说了,行为就是等于方法,那方法是不是应该书写到Soldier战士里面?肯定也要用yangke的Soldier来跟zhangsan的Soldier来进行pk,那是不是要将zhangsan的Soldier引入到yangke的Soldier进行pk?
public class Legend { public static void main(String[] args) { Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier战士实例 Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier战士实例 yangke.attack(zhangsan);//将zhangsan的Soldier引入到yangke的Soldier里面并有一个public void attack进行接收 }}public class Soldier { //属性 public String name;//姓名 public int level;//等级 public int hp;//生命力 public int atk;//攻击力 public int def;//防御力 //方法 public Soldier(){//无参构造 } public Soldier(String name, int level, int hp, int atk, int def) {//有参构造 this.name = name;//姓名 this.level = level;//等级 this.hp = hp;//生命力 this.atk = atk;//攻击力 this.def = def;//防御力 } public void attack(Soldier other){//当主函数将zhangsan的Soldier引入到yangke的Soldier里面我们要进行一个接收 int Damage = this.atk-other.def;//设置一个伤害的计算 Damage肯定等于yangke的攻击力-zhangsan的防御力 other.hp-=Damage;//再用zhangsan的血量减去伤害得到zhangsan的血量 if (other.hp <= 0){//如果zhangsan的血量少于等于0时,zhangsan阵亡,如果没有进行显示伤害数据 System.out.println(other.name+"已经阵亡"); }else { System.out.println("成功普通攻击了"+other.name+"并对它造成了"+Damage+"伤害"+other.name+"还剩"+other.hp+"血量"); } }}
最终结果
以上就是Java基于面向对象实现一个战士小游戏的详细内容,更多关于Java战士小游戏的资料请关注盛行IT其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。