【Java基础知识回顾篇】之打怪升级Day001

Java基础知识回顾篇之打怪升级Day001



简介

大四学生一枚,考研没有上岸,准备捡起丢失已久的Java语言的秘籍,升级打怪,慢慢成长,慢慢进步。我打算花一个月的时间重新回顾一下java的基础知识,我也是看了很多java开发路线的路线,确定了自己的前进方向,一步一步,成为更好的人。Java基础知识学习与回顾的课程,我选择的是韩顺平老师的【零基础 快速学Java】课程,老师讲的很细致,不管是零基础还是学过Java的都会有一定的收获。下面是我的学习笔记,记录自己成长的过程。


一、为什么现在主流的是Java8和Java11?

在此之前,我一直用的是java8,偶尔会用到java11,但是没有想过为什么java没有其他的版本,在韩老师的课程里,我知道为什么现在主流的是Java8和Java11。

在这里插入图片描述
从以上的图片可以看出,java8和java11都是LTS版本,LTS即Long-term_Support,就是长期支持版,从下图可以看到java8会一直被支持到2022年3月,它的扩展更是会到2030年12月,java11则会被一直支持到2023年11月,扩展回到2026年11月。

二、简单尝试编写java程序

1.编写一个Hello.java,让其能够输出“hello,今天是学习Java的好日子”

我是在linux环境下编写代码,之前的文章中配置了java的编译环境。

# 在/usr/lcoal/java目录下创建test/day001目录
# mkdir /usr/lcoal/java/test/day001 这种创建方式是错误的,多级目录创建需要添加-p
mkdir -p /usr/lcoal/java/test/day001
cd /usr/lcoal/java/test/day001
# 编写Hello.java
vim Hello.java

在Hello.java中,点击i进入编辑模式,写入以下代码。通过Esc退出编辑,再输入wq!强制保存。

public class Hello{
	public static void main(String[] arg){
		System.out.println("hello,今天是学习Java的好日子");	
	}
}

然后使用javac编译Hello.java文件,并且运行。

javac Hello.java
# 通过ls可以看到文件夹中生成一个Hello.class文件,这是java编译之后生成的。
# 通过以下命令运行Hello.class文件。
java Hello

在这里插入图片描述

2.编写一个User.java将个人信息(姓名、性别、年龄、电话、地址)输出到控制台。

这里使用到的是转义字符。

# 编写User.java
vim User.java

在Hello.java中,点击i进入编辑模式,写入以下代码。通过Esc退出编辑,再输入wq!强制保存。

public class User{
	public static void main(String[] arg){
		System.out.println("姓名\t性别\t年龄\t电话\t地址\n初心\t男\t21\t13880808080\t福建");	
	}
}

然后使用javac编译User.java文件,并且运行。

javac User.java
java User

在这里插入图片描述

下面是一些常见转义字符。
在这里插入图片描述

# 编写ChangeChar.java
vim ChangeChar.java

在ChangeChar.java中,点击i进入编辑模式,写入以下代码。通过Esc退出编辑,再输入wq!强制保存。

public class ChangeChar{
	public static void main(String[] arg){
		// \t 制表符 实现对齐功能
		System.out.println("姓名\t性别\t年龄\t电话\t地址");	
		// \n 实现换行
		System.out.println("java\npython\nC语言");	
		// \\ = \ 输出为一个斜杆\
		System.out.println("C:\\java\\jdk1.8");
		// \" 如果需要输出""
		System.out.println("初心:\"每天进步一点点!\"");
		// \r 回车 这个会将“我在”替换成“你在”
		System.out.println("我在福建\r你在");
	}
}

在这里插入图片描述


三、JDK、JRE和JVM的关系?

# 关系
JDK = JRE + java开发工具
JRE = JVM + 核心类库
# 概述
JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE(Java Runtime Environment)是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM(Java Virtual Machine——Java虚拟机),是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序。

四、环境变量的配置及作用?

环境变量的配置之前的文章也有介绍过,应该是能熟稔于心,朗朗上口。
配置环境变量的目的是为了在任意目录下都可以使用java的命令。

五、Java编写的步骤?

  1. 编写java源码
  2. javac编译,得到对应的.class字节码文件
  3. java运行,本质就是将.class文件加载到 jvm中运行

六、 java编写的七个规范

,方法的注释,使用javadoc的方式,即文档注释
非javadoc注释,往往是对代码的说明(给程序的维护者),说明如何修改,注意事项
使用tab,整体将代码右移,使用shift+tab整体左移
运算符和=的两边,给空格,代码看上去清楚int n = 1 + 4;
源码文件使用utf-8编码
行宽字符不要超过80
代码编程风格有两种次行风格,行尾风格(

七、 初学java易犯错误

编译或者运行时,找不到文件javac HelL0.java,把文件名或者目录找对
主类名和文件名不一致,修改时保持一致即可
缺少;
拼写错误,比如1 ->l 0->0,void -> viod ,要求写代码时,一定要小心

八、绝对路径和相对路径

绝对路径:是指文件在硬盘上真正存在的路径。
例如:C:\Users\hasee\Desktop\1.txt
相对路径:相对于自己的目标文件位置。
.例如:./2.txt

. 代表目前所在的目录 ..代表上一层目录 / 代表根目录

九、注释(comment)

1.单行注释

// 你需要注释的内容

2.多行注释

/*
	你需要注释的内容
*/

3.文档注释

/**
 * 
 * author chen
 * 
*/

【注】常用的javadoc标记

@author:作者。
@version:版本。
@docroot:表示产生文档的根路径。
@deprecated:不推荐使用的方法。
@param:方法的参数类型。
@return:方法的返回类型。
@see:用于指定参考的内容。
@exception:抛出的异常。
@throws:抛出的异常,和exception同义。

总结

以上就是今天学习的内容,本文仅仅简单介绍了java概述,都是一些比较基础的知识,循序而渐进,熟读而精思。明天继续加油!

A:好的,以下是一个基于Java实现的打怪升级小游戏示例: 首先,我们需要设计游戏中所需的角色和怪物类,以及它们的属性和方法。假设我们的游戏中有玩家角色和怪物角色,它们都有姓名、等级、血量、攻击力和防御力属性。 ``` // 角色类 public abstract class Character { String name; int level; int health; int attack; int defense; public abstract void attack(Character target); public abstract void levelUp() } // 玩家类 public class Player extends Character { int experience; public Player(String name, int level, int health, int attack, int defense) { this.name = name; this.level = level; this.health = health; this.attack = attack; this.defense = defense; this.experience = 0; } public void attack(Character target) { int damage = this.attack - target.defense; target.health -= damage; System.out.println(this.name + "攻击了" + target.name + ", 造成了" + damage + "点伤害!"); if (target.health <= 0) { System.out.println(target.name + "已经不能战斗了!"); this.experience += target.level * 10; levelUp(); } } public void levelUp() { if (this.experience >= this.level * 100) { this.experience -= this.level * 100; this.level++; System.out.println(this.name + "升级了,当前等级为" + this.level + "!") this.health += 10; this.attack += 5; this.defense += 5; } } } // 怪物类 public class Monster extends Character { public Monster(String name, int level, int health, int attack, int defense) { this.name = name; this.level = level; this.health = health; this.attack = attack; this.defense = defense; } public void attack(Character target) { int damage = this.attack - target.defense; target.health -= damage; System.out.println(this.name + "攻击了" + target.name + ", 造成了" + damage + "点伤害!"); if (target.health <= 0) { System.out.println(target.name + "已经不能战斗了!"); } } } ``` 接着,我们设计游戏管理类,负责控制游戏的流程和事件。在游戏初始化时,随机生成若干只怪物,并让玩家与它们进行战斗。当玩家击败所有怪物后,玩家等级提升,再次与新的怪物战斗,直到达到最高等级或失败。 ``` //游戏管理类 public class GameEngine { List<Character> enemies; Player player; public GameEngine(String playerName) { List<Integer> levels = Arrays.asList(1, 2, 3, 4, 5); List<Integer> healths = Arrays.asList(10, 20, 30, 40, 50); List<Integer> attacks = Arrays.asList(5, 10, 15, 20, 25); List<Integer> defenses = Arrays.asList(5, 10, 15, 20, 25); Random random = new Random(); enemies = new ArrayList<Character>(); for (int i = 0; i < 5; i++) { Monster monster = new Monster("怪物" + (i+1), levels.get(random.nextInt(levels.size())), healths.get(random.nextInt(healths.size())), attacks.get(random.nextInt(attacks.size())), defenses.get(random.nextInt(defenses.size()))); enemies.add(monster); } player = new Player(playerName, 1, 50, 20, 10); } public void start() { System.out.println("游戏开始!"); for (Character enemy : enemies) { while (player.health > 0 && enemy.health > 0) { player.attack(enemy); if (enemy.health <= 0) { break; } enemy.attack(player); } } System.out.println("当前等级为" + player.level + ", 经验值为" + player.experience + ", 准备下一场战斗!"); while (player.health > 0 && player.level < 5) { Monster monster = new Monster("怪物" + (player.level + 1), player.level + 1, 50 + player.level * 10, 20 + player.level * 5, 10 + player.level * 5); System.out.println("出现新的怪物:" + monster.name + "!"); while (player.health > 0 && monster.health > 0) { player.attack(monster); if (monster.health <= 0) { break; } monster.attack(player); } } if (player.health <= 0) { System.out.println(player.name + "被击败了,游戏结束!"); } else { System.out.println("恭喜" + player.name + "升到了最高等级" + player.level + ",游戏结束!"); } } } ``` 最后,在主函数中创建游戏管理对象并启动游戏: ``` public static void main(String[] args) { String playerName = "玩家1"; GameEngine game = new GameEngine(playerName); game.start(); } ``` 以上是一个简单的打怪升级小游戏示例,您可以根据自己的需求和想法添加更多的游戏元素和玩法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

return 初心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值