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

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

二、类的基本格式

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);
}
}
}
}

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

  1. 用Java写一个简单的回合制游戏

    用Java写一个简单的回合制游戏 创建基本属性,血量,名字,技能,技能伤害. 如下: public class One3 {//创建三个属性private String name;private St ...

  2. 使用java创建一个简单的回合制的双人pk

    创建一个简单的双人pk package com.hp.Demo1;import java.util.Random;/*** 玩家类* 属性:名字.类型.生命值.防御力.攻击类* 方法:自我介绍.Pk* ...

  3. 【Java程序员来写一个简单的HTML前端——映纷创意官网】

    官网页面:INFINI | 映纷创意 (infinistudio.cn) 布局分析: 映纷创意.css *{margin: 0;padding: 0; } body{background-color: ...

  4. 用java写一个日历_使用JAVA写一个简单的日历

    JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...

  5. java编写日历思路_使用JAVA写一个简单的日历

    JAVA写一个简单的日历import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDat ...

  6. 使用JAVA写一个简单的日历

    JAVA写一个简单的日历 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDa ...

  7. Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。

    我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...

  8. Java 百度AI 写一个简单的手势识别程序

    教程地址:请关注我的https://edu.csdn.net/course/detail/23001 Java写一个简单的手势识别程序,这里采用百度是AI,视觉技术中的人体分析中的手势识别,识别图片中 ...

  9. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  10. 用java做一个简单记事本_用记事本写一个简单的java程序

    用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...

最新文章

  1. 查看tcp各个连接状态的数量
  2. 将mnist数据集存储到本地文件
  3. jquery实现加载更多效果
  4. Windows栈溢出原理
  5. IBM-JAVA面试题
  6. Using dbms_shared_pool.purge to remove a single task from the library cache
  7. java学习(39):九九乘法表
  8. maven 无效的源发行版11
  9. git常用操作,切换分支,合并分支
  10. haproxy开启日志功能
  11. SQL查询一张表插入到另一张表
  12. es6模板字符串里用html标签,为ES6模板字符串计算标签函数
  13. 用PS把人物皮肤处理的质感又通透
  14. IdentityServer4 (IDS4) 快速入门
  15. 伟景行Citymaker三维Gis加载FDB数据
  16. SharpDevelop的AddInTree View 插件
  17. jzoj9382泡泡龙
  18. C# 流不可读 解决办法
  19. matlab subs什么意思,什么是matlab subs函数?
  20. 发一台数字控制稳压电源试试 测试IC等小功率低波纹高精度专用

热门文章

  1. IDEA破解图文教程
  2. linux 使用rpm命令安装和卸载软件的使用方法
  3. matlab聚类ppt,基于matlab的模糊聚类分析.ppt
  4. react在部分安卓手机浏览器无法加载页面或页面空白
  5. 5分钟轻松搞定产品需求文档!这可能史上最全PRD文档模板
  6. 三星on 7刷android7,三星On7(G6100)安卓8.0版官方固件rom刷机包
  7. 替换和修复系统User32.dll文件
  8. 校园网下桥接无法上网原理分析如何破解
  9. Matlab绘制柱状图(含显著性差异*)
  10. 直流电机控制原理与TB6612FNG(初识编码器)