回合对战制游戏第一篇(初识java)
回合对战制游戏第一篇
一,所谓的java。
- java是一门完全面向对象的编程语言,而之前所接触到的C语言是一门面向有一个过程的语音,对于两个的区别应该有一个清楚的认识。
- java的第一个内容。
- 类和对象时面向对象编程的基础核心。
(一)对象:
- 定义:生活中的对象都可以作为程序中的对象,也就是只要是一个具体的物体或者一个具体的事物都可以抽象的描述为一个对象。我们所想所做的任何一件事物中涉及到的事物就是一个对象。应注意的是,对象的单位一定是一。例如:某一台手机,某一个人,只能是某一个具体的。
- 2,对象的描述:对象要从他的特征和行为进行描述。
- 例如:某一个人
- 特征:姓名、身高、体重、性别、健康状况、颜值、…
- 行为:吃饭、睡觉、走路、上网、瑜伽、跑步、...
(二)类:
- 类是根据对象来定义的。
- 在生活中根据对象的相似的特征和相识的行为进行归类。在程序中,同理,类是根据生活中对象的特征以及行为(功能),按照程序中类的固定格式进行的抽象定义。
- 类的构成:
- 程序中的类是有两个部分组成:1.属性 2.方法
- 属性是由对象的特征进行定义的。
- 方法是由对象的行为(功能)进行定义的。
- 程序中的类就是一个模板。那对象就是要在模板中添加的内容。
- 为了添加对象,所以必须设置合适的类。
(三)类的基本格式
public class 类名 {
//属性的格式
public 数据类型 属性名;
//方法的格式
public 返回值的类型 方法名(数据类型 参数名,...){
}
}
- 实例化对象和调用方法属性的格式
- 实例化对象的关键字:new
格式:
类名 对象名 = new 类名();
- 调用方法和属性的格式:
对象名.属性名
对象名.方法名(参数值,...);
(四)构造方法:
- 构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
- 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。调用重载方法时,Java编译器能通过检查调用的方法的参数类型和个数选择一个恰当的方法。方法重载通常用于创建完成一组任务相似但参数的类型或参数的个数不同的方法。 方法重载是让类以统一的方式处理不同类型数据的一种手段。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。
二.回合对战
- 回合对战制游戏:奥特曼和小怪兽进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
- 找出场景中的对象以及对象的特征和行为:
对象:奥特曼:
特征:姓名,血量,
行为:战斗,血量减少
小怪兽:
特征:姓名,血量,
行为:战斗,血量减少
- 根据对象的特征和行为以及类的固定格式去定义类:
建立的对象:奥特曼的类:Hero
小怪兽的类:Monster
- 定义类,在类中定义主函数
在主函数中实例化Hero和Monster的对象,调用属性和方法。
思路:1,奥特曼打一次小怪兽,小怪兽的血量减1;
小怪兽打一次奥特曼,奥特曼的血量同样减1;
2.利用for 和if循环实现攻击,当i为奇数是,小怪兽打奥特曼,当i为偶数时,奥特曼打小怪兽。
主函数:
- public class manager{
- public static void main(String [] args){
- Monster a=new Monster();
- a.name="小怪兽";
- a.bloodValue=10;
- Hero s=new Hero();
- s.name="奥特曼";
- s.bloodValue=20;
- for(int i=0;;i++){
- if(i%2==0){
- s.fight(a);
- if(a.bloodValue == 0){
- break;
- }
- } else{
- a.fight(s);
- if(s.bloodValue == 0){
- break;
- }
- }
- }
- }
- }
manager
Hero:
- public class Hero{
- public int bloodValue;
- public String name;
- public void fight(Monster mon){
- mon.bloodValue--;
- System.out.println(name+"正在和"+mon.name+"战斗,"+mon.name+"剩余的血量是"+ mon.bloodValue);
- if(mon.bloodValue<=0){
- System.out.println(name+"赢了");
- }
- }
- }
Hero
Monster:
- public class Monster{
- public int bloodValue;
- public String name;
- public void fight(Hero her){
- her.bloodValue--;
- System.out.println(name+"正在和"+her.name+"战斗"+her.name+"的剩余的血量是"+ her.bloodValue);
- if(her.bloodValue<=0){
- System.out.println(name+"赢了");
- }
- }
- }
Monster
(六)结果:
三.注意点:
- 编程中符号都是英文的;
- 编程中应该注意格式,对齐。注意“;”的使用。要留心细节。
- 对于单行注释//,和多行/*……*/的正确使用。
- break和continue的使用,break是跳出整个循环,continue只是跳出一次循环。
- 注意大小写,类名和包名应一致。
回合对战制游戏第一篇(初识java)的更多相关文章
- 深入理解javascript对象系列第一篇——初识对象
× 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...
- 自定义View4-塔防小游戏第一篇:一个防御塔+多个野怪(简易版)*
塔防小游戏 第一篇:一个防御塔+多个野怪(简易版) 1.canvas画防御塔,妖怪大道,妖怪行走路线 2.防御塔攻击范围是按照妖怪与防御塔中心距离计算的,大于防御塔半径则不攻击,小于则攻击 ...
- Java 面向对象编程——第一章 初识Java
第一章 初识Java 1. 什么是Java? Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以其强安全性.平台无关性.硬件结构无关性.语言简 ...
- 我们一起学习WCF 第一篇初识WCF(附源码供对照学习)
前言:去年由于工作需要我学习了wcf的相关知识,初期对wcf的作用以及为何用怎么样都是一知半解,也许现在也不是非常的清晰.但是通过项目对wcf的运用在脑海里面也算有了初步的模型.今天我就把我从开始wc ...
- go [第一篇]初识
[第一篇] 简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发 ...
- 【python游戏编程之旅】第一篇---初识pygame
本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 一.pygame简介 Pygame 是一组用来开发游戏软件的 Python 程序模块,基于 SDL 库的基础 ...
- Mybatis之旅第一篇-初识Mybatis
一.JDBC的问题 为什么我们要使用Mybatis,是因为JDBC存在以下问题 1. 数据库连接创建.释放频繁造成系统资源浪费,从而影响系统性能.如果使用数据库连接池可解决此问题. 2. Sql语句在 ...
- JavaWeb学习总结第一篇--初识JavaWeb
JavaWeb学习总结(一)-- 初识JavaWeb 一:Web相关概念 Web程序也就是一般所说的网站,由服务器.客户端浏览器和网络组成.Web程序的好处就是使用简单,不需要安装.学习,有一台电脑. ...
- Docker 第一篇--初识docker
已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...
随机推荐
- .Net Core 控制台输出中文乱码
Net Core 控制台输出中文乱码的解决方法: public static void Main(string[] args) { Console.Output ...
- iptables详细说明
一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙 ...
- PAT 1005. 继续(3n+1)猜想 (25) JAVA
当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对n=3进行验证的时候,我们需要计算3.5.8.4.2.1,则当我们对n=5.8.4.2进行验证的时候,就可以直接 ...
- js 点击默认另存 ,不是打开 Blob 操作
function savepic(obj) { if (memFileObj != undefined) { obj = memFileObj; } else { memFileObj = obj; ...
- java中wait/notify机制
通常,多线程之间需要协调工作.例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕.如果图片还没有下载完,d ...
- Linux shell中的符号
.单小括号 () ①命令组.括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用. 括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空 ...
- Spring TestContext测试框架搭建
同样是测试,JUnit和Spring TestContext相比,Spring TestContext优势如下: 1.Spring TestContext可以手动设置测试事务回滚,不破坏数据现场 2. ...
- RabbitMQ集群环境搭建-4
确保成功安装好JDK,erlang,RabbitMQ等,并且RabbitMQ能正常启动,多台电脑之间能互相ping得通. 1. 安装 erlang.rabbitmq 如: 192.168.1.1.19 ...
- 深入理解计算机系统(2.7)---二进制浮点数,IEEE标准(重要)
2.6我们进行了二进制整数运算的最后一役,本次LZ将和各位一起进入浮点数的世界,这里没有无符号,没有补码,但是有各种各样的惊奇.倘若你真正的进入了浮点数的世界,一定会发现它原来是这么有意思,而不是像之 ...
- 手机信号强度单位dB、dBm和asu
dB.dBm都是功率增益的单位,不同之处如下: dB是一个表征相对值的值,纯粹的比值,只表示两个量的相对大小关系,没有单位,当考虑甲的功率相比于乙功率大或小多少个dB时,按下面的计算公式:10log( ...