Java--类和对象--回合制对战游戏

  本人Java刚入门,目前菜鸟级别,在此尝试一下众多技术大牛所推崇的优良习惯------也来写写技术博客,希望CSDN博客能见证我的成长和进步。以下是本人的第一篇技术博客。

  我就从OOP中最基本的类和对象说起好了。类是对象的抽象,对象是类的具体表现。让我们从具体到抽象,这样更容易理解。

1.现实生活中有哪些是对象?

    我们先不说对象的定义,先自己思考一下就字面意思来看,生活中的对象有什么。我接到这个问题时,立马想到的是映入眼帘的东西:笔,电脑,书......

但这些真的是指具体的某个对象吗?到底是哪支笔,哪台电脑,哪本书?我又加上了指示代词和物主代词:这支笔,他的电脑......这样对象的定义就逐渐清晰了。

对象:在现实生活中只要是一个具体的物体或者一个具体事物就是一个对象。

举例:某一台电脑、某一支笔、某一本书......

从哪些方面去描述一个对象?------通过其特征功能进行描述

        某一台电脑
特征:型号,重量,品牌,价格,颜色,性能,CPU,硬盘......
功能:开机、关机、上网、编辑文件......

2.类的组成和格式

    生活中是根据什么对对象进行分类的呢?------根据对象的特征行为(功能)进行划分的。

    程序中的类是怎样的呢?
程序中类是根据生活中对象(类)的特征以及行为(功能),按照程序中类的固定进行的抽象定义。
程序中类由两个部分组成:1.属性    2.方法
属性是由对象的特征进行定义的;
方法分为两类:1.构造方法  2.普通方法(构造方法这里暂且不说,后文有详细说明)
普通方法是由对象的行为(功能)定义的。

    类的格式
public class 类名 {           //注意:Java的类名最好第一个字母大写

//属性的格式
访问修饰符  数据类型  属性名;

//普通方法的格式
访问修饰符  返回值类型  方法名(数据类型  参数名,...){
//代码
}

//构造方法的格式  注意:构造方法名必须要和类名一致。
访问修饰符  构造方法名(数据类型 参数名,...){
//代码
}

}

注意:Java的类中可以使用的访问修饰符有四种:private、默认的、protected、public

举例:

public class Outman {                                                        //定义一个公有的奥特曼类
public String name;                                                    //定义一个公有的字符串类型的姓名属性
        public int blood;                                                          //定义一个公有的整型的血量属性
        public void Attack(Monster mon){                             //定义一个攻击方法

        //具体功能的代码

        }

}

3.构造方法(构造器、构造函数)
Java默认会给类提供一个无参数的构造方法,我们在创建对象的时候new的后面调用的就是构造方法。

1.构造方法的用途
1.实例化对象
2.传递参数
2.构造方法和普通方法的区别是什么?
1.格式4个不同:a.构造方法名必须和类名一致;b.构造方法不必声明返回值类型;c.构造方法一定有返回值,返回值的类型就是方法名,因为构造方法名就是一个类的名字,是一个数据类型;d.构造方法在调用的时候是通过new关键字来调用。
2.用途和用法2个不同:构造方法是用来实例化对象和初始化属性的;普通方法是对对象的行为定义的,调用普通方法时表示执行的对象的行为。

举例:

public class Outman{

          public Student(){                           //无参构造器方法

          }

}

Outman o=new Outman();                      //调用构造方法

4.this关键字
1.当你的参数名和属性名相同时,可以使用this关键字来做区分,加上this的表示属性名,没有加的则表示参数名。
2.用来调用构造方法(防止没有给属性赋值)

this表示谁呢?
当前是哪一个对象名在调用方法,那么方法中的this就表示这个对象。
this和生活中的“我”一样。

举例:

public class Monster{                                                                //定义一个公有的怪兽类
public String name;                                                           //定义一个公有的字符串类型的姓名属性
        public int blood;                                                                //定义一个公有的整型的血量属性
        public Monster(String name,int blood){                           //定义一个构造方法(含有两个参数)
              this.name=name;                                                    //this关键字区分,左边的表示name 属性,右边的表示name参数
              this.blood=blood;                                                    //this关键字区分,左边的表示blood 属性,右边的表示blood参数
        }                                                                                                                                                                                                                                                                       }

5.方法重载
1.现实生活中什么情况下需要使用方法重载?
普通方法:学生:学习课程、学习开车......
构造方法:人出生时有不同的特征,有的人出生时有胎记,有的人没有

2.方法重载的实现条件:
a.方法名必须要相同
b.方法的参数不同(个数、类型、顺序)

举例:我们可以在一个类中重载多个构造方法:

public class Monster{
public String name;
        public int blood;
        public Monster(){                                                                  //定义一个无参的构造函数
             this("Monster",1000);                                                  //通过this关键字给属性赋值
        }                                                                                                                                                                                                                                                                               public Monster(String name){                                               //方法重载                                                                                                                                                                                              this.name=name;                                                                                                                                                                                                                         }
        public Monster(String name,int blood){                                 //方法重载
              this.name=name;
              this.blood=blood;
        }                                                                                                                                                                                                                                                                       }

6.实例化对象和调用方法的格式
实例化对象的关键字:new
格式:
类名 对象名 = new 类名();
类名 对象名 = new 构造方法名(参数值,...);                           //两种等同

调用方法和属性的格式:
对象名.属性名
对象名.方法名(参数值,...);

举例:

Outman o=new Outman();   

o.name=Leo;

o.blood=2000;

实践:回合制对战游戏:奥特曼和小怪兽进行PK,直到一方血量为0时结束战斗,输出谁胜利了!
如果奥特曼胜利,则奥特曼要攻击Boss,直到一方血量为0时结束战斗,输出谁胜利了!



  • 9
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现一个界面化的回合制对战游戏,你可以使用Java的图形用户界面(GUI)库,例如JavaFX或Swing。以下是一种可能的实现方式: 1. 创建游戏界面:使用GUI库创建一个游戏窗口,包含游戏地图、角色信息、技能按钮等元素。 2. 设计游戏角色:创建角色类,包含属性如生命值、攻击力、防御力等,并为角色添加方法如攻击、防御等。 3. 实现回合制逻辑:通过控制角色的行动顺序来实现回合制。可以创建一个回合类,每个回合按照设定的顺序让角色执行动作。 4. 处理用户输入:通过按钮或其他交互元素,让玩家选择角色的动作,例如攻击、防御或使用技能。根据玩家的选择,调用对应角色的方法进行相应操作。 5. 更新游戏状态:每个回合结束后,更新游戏状态,例如检查角色是否死亡、判断游戏是否结束等。 6. 设计AI对手:如果需要添加AI对手,可以创建一个AI类,实现一定的策略来控制AI角色的行动。 7. 添加动画效果:为了增强游戏体验,可以添加一些动画效果,例如角色攻击时的特效、角色受伤时的动画等。 8. 测试和调试:完成代码后,进行测试和调试,确保游戏逻辑正确,并处理可能出现的异常情况。 以上是一个简单的实现示例,具体实现方式还取决于你的需求和设计。你可以根据需要进一步扩展和优化游戏功能和交互体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值