用java类和对象写一个简单的回合制对战游戏

一、什么是对象,什么是类

类比现实生活,任何一个具体的事物都可以称为对象,比如某台电脑,某本书,某个人……而类就是根据对象相似的特征和功能进行分类,对象是具体的,类是抽象的。

二、类的基本格式

public class 类名 {
//定义属性
访问修饰符  数据类型  属性名;
//定义方法
访问修饰符    返回值数据类型  方法名(数据类型  参数名,...){
}
}

三、实例化对象和调用方法的基本格式

实例化对象:

        类名  对象名 = new 构造方法名(参数值,...);
类名  对象名 = new 类名(参数值,...);

调用属性和方法的格式:
对象名.属性名

对象名.方法名(参数值,...)

四、构造方法

格式:

访问修饰符  构造方法名(数据类型 参数名,...){

}

用途:1.实例化对象;2.给属性设置初始值。(java默认提供一个无参的构造方法)

五、this关键字

当参数名和属性名一致时,Java会使用就近原则,优先使用离其最近的参数,把参数赋给参数和属性没有任何关系;
这种情况下就需要使用this来做区分,加上"this."的表示属性,没有加的则表示参数。
this(参数值,...);表示调用对应参数的构造方法


实例:共有三个角色进行对战,其中两人为挑战者,一人为boss,两位挑战者先决出胜负,胜者再与boss对战。

先写一个角色类。

public class Character {

//设置角色属性
public String name;
public int maxhp;
public int nowhp;
public int atk;
public boolean win;
//创建一个构造方法,用来实例化对象
public Character(String name,int maxhp,int atk){
this.name = name;
this.maxhp =maxhp;
this.atk = atk;
}
//角色的攻击方法
public void attack(Character one){
//当前血量>0才能攻击
if(nowhp>0){
one.nowhp -= atk;
System.out.println(name+"正在攻击"+one.name);
System.out.println(one.name+"的剩余血量为:"+one.nowhp);
}
if(one.nowhp<=0){
System.out.println(name+"击败了"+one.name);
win = true;//获得胜利
nowhp = maxhp;//恢复血量
}
}
//a倍伤害的攻击方法
public void attack(Character one,int a){
if(nowhp>0){
one.nowhp -= atk*a;
System.out.println(name+"正在攻击"+one.name);
System.out.println(one.name+"的剩余血量为:"+one.nowhp);
}
if(one.nowhp<=0){
System.out.println(name+"击败了"+one.name);
win = true;
nowhp = maxhp;
}
}

}

再写一个对战类

public class Battle {
public static void main(String args[]){
//实例化对象
Character Aoteman = new Character("kaiwen",800,15);
Character Xiaoguaishou = new Character("zhaohuan",500,20);
Character Boss = new Character("jiuxiao",404,99);
//初始化血量
Aoteman.nowhp = Aoteman.maxhp;
Xiaoguaishou.nowhp = Xiaoguaishou.maxhp;
Boss.nowhp = Boss.maxhp;
        //两方互相攻击,直到一方血量<=0
while(Aoteman.nowhp>0 && Xiaoguaishou.nowhp>0){
Aoteman.attack(Xiaoguaishou);
Xiaoguaishou.attack(Aoteman);
}
//胜利者与boss对战
if(Aoteman.win){
while(Aoteman.nowhp>0 && Boss.nowhp>0){
Aoteman.attack(Boss);
Boss.attack(Aoteman,2);
}
}

if(Xiaoguaishou.win){
while(Xiaoguaishou.nowhp>0 && Boss.nowhp>0){
Xiaoguaishou.attack(Boss);
Boss.attack(Xiaoguaishou,2);
}
}
}
}

  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值