
java部分的基础学习已经完结,接下来给大家分享的大多为java相关的案例分析,也会有一些小项目,这点不要太过于担心,主要还是基础部分要打牢固。java部分的难点就在面向对象这一点,学习C语言的小伙伴们应该是第一次听说方法。这点也是和C语言相差巨大的地方,不过对于学习过python的小伙伴们应该会十分友好。

温馨提示一下:要好好运用工具

如果大家基础知识掌握的还不太行的话,一定要点击下方链接仔细观看欧❥(^_-)

运算符、判断、循环
数组、方法
双色球系统
"JavaBean",它是Java语言中的一种特殊类别,通常用于在Java应用程序中作为可重用的软件组件。
Java中的面向对象编程(Object-Oriented Programming, OOP)是其核心编程范式之一。
注:javabeen类似与C语言中的模块化编程,python中的方法
类与对象:
封装(Encapsulation):
继承(Inheritance):
多态(Polymorphism):
抽象类与接口:
重要概念:
其他关键词:
设计原则:
private String name;
private int blood;
private char gender;
private String face;
//面部描述
String[] boyfaces={"眉清目秀","一表人才","神采奕奕","目光炯炯","英姿飒爽","目不斜视","容光焕发","神情自若","面如冠玉","眉飞色舞"};
String[] girlfaces={"姹紫嫣红","姣好靓丽","柳眉星眼","芙蓉出水","明眸皓齿","冰清玉洁","红颜白发","笑逐颜开","美若天仙","闭月羞花"};
//攻击描述
String[] attack_dasc={
"%s刀光剑影,无声无息地一击打中了%s",
"%s提取方法…招招势如破竹,迅猛无比打向%s",
"%s手起刀落,锋利如鹰击长空,击中%s",
"%s招招精准,步步为营,势不可挡。功向%s",
"%s突如其来,快如闪电,令%s防不胜防。"
};
//受伤描述
String[] hurt_dasc={
"结果%s退了半步,毫发无伤",
"结果%s造成了一处瘀伤。",
"结果%s皮开肉绽,伤痕累累。",
"结果%s受伤虽重,仍孜孜不倦地站立。",
"结果%s脸色苍白,连退好几步",
"结果%s受到内伤,气息奄奄。",
"结果%s一声惨叫,像烂泥班塌了下去"
};成员变量定义:
这些是角色的基本属性:
private String name;private int blood;private char gender;private String face;name 是角色的名字,类型为字符串。blood 是角色的血量,类型为整数。gender 是角色的性别,类型为字符(通常用 'M' 或 'F' 表示男性或女性)。face 是角色的面部特征,类型为字符串。面部描述数组:
这两个数组存储了男性角色和女性角色的面部描述,每个描述是一个字符串,描述了角色的外貌特征。
String[] boyfaces = {...};String[] girlfaces = {...};攻击描述数组:
这个数组包含了角色进行攻击时的描述模板,使用了占位符 %s 来表示攻击者和被攻击者的名字。这些描述字符串似乎是为了在游戏或者故事情节中描绘战斗或攻击的场景。
String[] attack_dasc = {...};注:这里的占位符和C语言中的用法类似使用占位符的时候要看清是printf而不是println
受伤描述数组:
这个数组包含了角色受伤时的描述模板,同样使用了 %s 占位符表示受伤的角色。这些描述用于描述角色在战斗中或者遭遇意外时的反应和状态。
String[] hurt_dasc = {...};public Role() {//空参
}
public Role(String name, int blood,char gender) {
this.name = name;
this.blood = blood;
this.gender = gender;
setFace(gender);
}
public String getFace() {
return face;
}
public void setFace(char gender) {
Random r = new Random();
if(gender=='男'){
int index = r.nextInt(boyfaces.length);
this.face = boyfaces[index];
}else if(gender=='女'){
int index = r.nextInt(girlfaces.length);
this.face = girlfaces[index];
}else{
this.face = "抽象";
}
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}构造方法:
在这个构造方法中:
public Role() {}:空参构造方法,没有任何参数,可能用于创建对象实例时的默认初始化。
public Role(String name, int blood, char gender):带参数的构造方法,用来初始化角色对象的属性。
name:角色的名字。blood:角色的血量。gender:角色的性别('男' 或 '女')。name、blood、gender 分别赋值给对象的对应属性。setFace(gender) 方法来根据性别设定角色的面部描述。成员变量:
private String name;:角色名字。private int blood;:角色血量。private char gender;:角色性别。private String face;:角色面部描述。方法:
public String getFace() 和 public void setFace(char gender):用于获取和设置角色的面部描述。
setFace(char gender) 方法根据传入的性别参数选择性别对应的面部描述,并将其赋值给 face 属性。public char getGender() 和 public void setGender(char gender):用于获取和设置角色的性别。
public String getName() 和 public void setName(String name):用于获取和设置角色的名字。
public int getBlood() 和 public void setBlood(int blood):用于获取和设置角色的血量。
面部描述数组和随机选择:
boyfaces 和 girlfaces 分别存储了男性和女性角色的面部描述。setFace(char gender) 方法根据传入的性别参数选择性别对应的面部描述数组,并随机选取一个面部描述赋给 face 属性。//定义一个方法用于攻击别人
//方法的调用者去攻击参数
public void attack(@org.jetbrains.annotations.NotNull Role role) {
//攻击方式
Random r = new Random();
int index = r.nextInt(attack_dasc.length);
String attack_fun =attack_dasc[index];
//输出一个攻击效果
System.out.printf(attack_fun,this.getName(),role.getName());
System.out.println();
//伤害1-20
Random ran = new Random();
int hurt = ran.nextInt(20) + 1;
//剩余的血量
int remainBlood = role.getBlood() - hurt;
remainBlood = remainBlood > 0 ? remainBlood : 0;
role.setBlood(remainBlood);
//输出一下结果
//受伤的描述
if(remainBlood>=80){
System.out.printf(hurt_dasc[0],role.getName());
}else if(remainBlood>=70){
System.out.printf(hurt_dasc[1],role.getName());
}else if(remainBlood>=60){
System.out.printf(hurt_dasc[2],role.getName());
}else if(remainBlood>=50){
System.out.printf(hurt_dasc[3],role.getName());
}else if(remainBlood>=40){
System.out.printf(hurt_dasc[4],role.getName());
}else if(remainBlood>=30){
System.out.printf(hurt_dasc[5],role.getName());
}else{
System.out.printf(hurt_dasc[6],role.getName());
}
System.out.println();
}
public void showRoleInfo(){
System.out.println("姓名为:"+getName());
System.out.println("血量为:"+getBlood());
System.out.println("性别为:"+getGender());
System.out.println("长相为:"+getFace());
}attack(Role role) 方法:
role。attack_dasc 数组中随机选择一种攻击方式,并将选择结果存储在 attack_fun 变量中。System.out.printf 方法输出攻击效果,其中 %s 标记会分别被当前角色的名字 this.getName() 和被攻击角色的名字 role.getName() 替换。hurt。remainBlood,并将其更新到 role 对象中。hurt_dasc 数组中输出。showRoleInfo() 方法:
System.out.println 分别输出角色的姓名(getName())、血量(getBlood())、性别(getGender())、长相(getFace())。package day4;
public class text1 {
public static void main(String []args){
//案例、文字格斗游戏
Role r1=new Role("狼叔",100,'男');
Role r2=new Role("鲨鱼妹",100,'女');
//展示角色信息
r1.showRoleInfo();
r2.showRoleInfo();
//开始战斗
while (true){
//r1攻击r2
r1.attack(r2);
if (r2.getBlood() == 0){
System.out.println(r1.getName()+"击败了"+r2.getName());
break;
}
//r2攻击r1
r2.attack(r1);
if (r1.getBlood() == 0){
System.out.println(r2.getName()+"击败了"+r1.getName());
break;
}
}
}
}Role 类:
attack(Role role) 方法用于攻击另一个角色,并在攻击时产生随机的攻击效果和伤害。text1 类:
r1 和 r2,分别命名为 "狼叔" 和 "鲨鱼妹",初始化血量为 100,并指定性别。showRoleInfo() 方法展示两个角色的初始信息(姓名、血量、性别)。while 循环来模拟战斗的过程,直到其中一个角色的血量降到或者低于 0。r1 攻击 r2,然后检查 r2 的血量是否降到 0。如果是,输出 r1 击败 r2 的信息,并结束战斗。r2 攻击 r1,并检查 r1 的血量。如果 r1 的血量降到 0,输出 r2 击败 r1 的信息,并结束战斗。战斗过程:
Random 类来生成随机数,因此每次运行的战斗结果可能不同。package day4;
public class text1 {
public static void main(String []args){
//案例、文字格斗游戏
Role r1=new Role("狼叔",100,'男');
Role r2=new Role("鲨鱼妹",100,'女');
//展示角色信息
r1.showRoleInfo();
r2.showRoleInfo();
//开始战斗
while (true){
//r1攻击r2
r1.attack(r2);
if (r2.getBlood() == 0){
System.out.println(r1.getName()+"击败了"+r2.getName());
break;
}
//r2攻击r1
r2.attack(r1);
if (r1.getBlood() == 0){
System.out.println(r2.getName()+"击败了"+r1.getName());
break;
}
}
}
}package day4;
import java.util.Random;
public class Role {
private String name;
private int blood;
private char gender;
private String face;
//面部描述
String[] boyfaces={"眉清目秀","一表人才","神采奕奕","目光炯炯","英姿飒爽","目不斜视","容光焕发","神情自若","面如冠玉","眉飞色舞"};
String[] girlfaces={"姹紫嫣红","姣好靓丽","柳眉星眼","芙蓉出水","明眸皓齿","冰清玉洁","红颜白发","笑逐颜开","美若天仙","闭月羞花"};
//攻击描述
String[] attack_dasc={
"%s刀光剑影,无声无息地一击打中了%s",
"%s提取方法…招招势如破竹,迅猛无比打向%s",
"%s手起刀落,锋利如鹰击长空,击中%s",
"%s招招精准,步步为营,势不可挡。功向%s",
"%s突如其来,快如闪电,令%s防不胜防。"
};
//受伤描述
String[] hurt_dasc={
"结果%s退了半步,毫发无伤",
"结果%s造成了一处瘀伤。",
"结果%s皮开肉绽,伤痕累累。",
"结果%s受伤虽重,仍孜孜不倦地站立。",
"结果%s脸色苍白,连退好几步",
"结果%s受到内伤,气息奄奄。",
"结果%s一声惨叫,像烂泥班塌了下去"
};
public Role() {//空参
}
public Role(String name, int blood,char gender) {
this.name = name;
this.blood = blood;
this.gender = gender;
setFace(gender);
}
public String getFace() {
return face;
}
public void setFace(char gender) {
Random r = new Random();
if(gender=='男'){
int index = r.nextInt(boyfaces.length);
this.face = boyfaces[index];
}else if(gender=='女'){
int index = r.nextInt(girlfaces.length);
this.face = girlfaces[index];
}else{
this.face = "抽象";
}
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
//定义一个方法用于攻击别人
//方法的调用者去攻击参数
public void attack(@org.jetbrains.annotations.NotNull Role role) {
//攻击方式
Random r = new Random();
int index = r.nextInt(attack_dasc.length);
String attack_fun =attack_dasc[index];
//输出一个攻击效果
System.out.printf(attack_fun,this.getName(),role.getName());
System.out.println();
//伤害1-20
Random ran = new Random();
int hurt = ran.nextInt(20) + 1;
//剩余的血量
int remainBlood = role.getBlood() - hurt;
remainBlood = remainBlood > 0 ? remainBlood : 0;
role.setBlood(remainBlood);
//输出一下结果
//受伤的描述
if(remainBlood>=80){
System.out.printf(hurt_dasc[0],role.getName());
}else if(remainBlood>=70){
System.out.printf(hurt_dasc[1],role.getName());
}else if(remainBlood>=60){
System.out.printf(hurt_dasc[2],role.getName());
}else if(remainBlood>=50){
System.out.printf(hurt_dasc[3],role.getName());
}else if(remainBlood>=40){
System.out.printf(hurt_dasc[4],role.getName());
}else if(remainBlood>=30){
System.out.printf(hurt_dasc[5],role.getName());
}else{
System.out.printf(hurt_dasc[6],role.getName());
}
System.out.println();
}
public void showRoleInfo(){
System.out.println("姓名为:"+getName());
System.out.println("血量为:"+getBlood());
System.out.println("性别为:"+getGender());
System.out.println("长相为:"+getFace());
}
}