熟练并掌握
对类属性进行私有化,并设置访问方法;
对类进行包封装,学习调用类方法及要求;
对类进行属性、方法静态设置、了解静态代码块的作用;
第一个英雄技能类
package gailun;
import hero.Hero;
public class Gailuntest {
static String q="盖伦的一技能:盖伦为宝剑附加魔力,下一击攻击力额外增加20%\n";
// System.out.println(q);
static String w="盖伦的二技能:盖伦为自身鼓舞士气,增加自身100点生命\n";
// System.out.println(w);
static String e="盖伦的三技能:盖伦旋转并挥舞宝剑,对范围内敌人每秒100伤害\n";
// System.out.println(e);
static String r="盖伦的四技能:盖伦高举大宝剑插入敌人身体,造成400点伤害\n"
+ "(斩杀血量低于400的敌人)";
public static void skill() {
System.out.println(q+w+e+r);
}
public static void Gq(Hero hanbing,Hero gailun) {
System.out.println("盖伦使用了一技能,攻击了寒冰\n"+q);
hanbing.setVitality(hanbing.getVitality() - (gailun.getAggressivity()*1.2-hanbing.getDefenf()));
hanbing.information();
// return hanbing.vitality;
}
public static void Gw(Hero gailun) {
System.out.println("盖伦使用了二技能\n"+w);
gailun.setVitality(gailun.getVitality() + 100);
if(gailun.getVitality()>780.0) {
gailun.setVitality(780.0);
}
gailun.information();
// return gailun.vitality;
}
public static void Gr(Hero hanbing,Hero gailun) {
System.out.println("盖伦发动大招,锁定了寒冰\n"+r);
if(hanbing.getVitality()<400) {
hanbing.setVitality(0);
}else {
hanbing.setVitality(hanbing.getVitality() - (400-hanbing.getDefenf()));
}
hanbing.information();
// return hanbing.vitality;
}
public static void Gdied(Hero gailun) {
System.out.println("盖伦阵亡");
gailun.setAggressivity(0);
gailun.setDefenf(0);
gailun.setVitality(0);
gailun.information();
// return gailun;
}
}
第二个英雄技能类
package hanbing;
import hero.Hero;
public class Hanbingtest {
static String q="一技能:在间隔1.5秒的时间内连续普攻三次 \n";
// System.out.println(q);
static String w="二技能:一次性朝前方发出多只箭,造成伤害破防敌人\n";
// System.out.println(w);
static String e="三技能:向前方发射一只燃烧长箭照亮视野\n前方出现了不确定因素\n";
// System.out.println(e);
static String r="四技能:往前方发射一只长箭,定住命中的敌人两秒\n";
public static void skill() {
System.out.println(q+w+e+r);
}
public static void Hq(Hero gailun,Hero hanbing) {
System.out.println("寒冰使用了一技能,攻击了盖伦\n"+q);
gailun.setVitality(gailun.getVitality() - (hanbing.getAggressivity()*3-gailun.getDefenf()));
gailun.information();
// return gailun.vitality;
}
public static void Hw(Hero gailun,Hero hanbing) {
System.out.println("寒冰使用了二技能,攻击了盖伦\n"+w);
gailun.setVitality(gailun.getVitality() - hanbing.getAggressivity());
gailun.information();
// return gailun.vitality;
}
public static double He(Hero gailun,Hero hanbing) {
System.out.println("寒冰使用了三技能\n"+e);
double a=Math.random()*100;
a%=10;
if(a<=2) {
System.out.println("长箭逐渐燃烧,并发生爆炸,对范围内的敌人造成300点真实伤害");
gailun.setVitality(gailun.getVitality() - 300);
gailun.information();
return gailun.getVitality();
}else if(a<=5) {
System.out.println("长箭照亮了视野,敌方“剑豪”出现在了寒冰的身后,并发动了q技能");
hanbing.setVitality(hanbing.getVitality() - 200);
hanbing.information();
return hanbing.getVitality();
}else {
System.out.println("战场上出现了只蛤蟆怪");
return 10000;
}
}
public static void Hdeid(Hero hanbing) {
System.out.println("寒冰阵亡\n");
hanbing.setAggressivity(0);
hanbing.setDefenf(0);
hanbing.setVitality(0);
hanbing.information();
// return hanbing;
}
}
英雄类
package hero;
import gailun.Gailuntest;
import hanbing.Hanbingtest;
public class Hero {
//封装
//静态特征
private String name; //姓名
private double aggressivity; //攻击力
private double defenf; //防御力
private double vitality; //生命力
//设置访问属性方法
//构造方法
//无参构造
Hero() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getAggressivity() {
return aggressivity;
}
public void setAggressivity(double aggressivity) {
this.aggressivity = aggressivity;
}
public double getDefenf() {
return defenf;
}
public void setDefenf(double defenf) {
this.defenf = defenf;
}
public double getVitality() {
return vitality;
}
public void setVitality(double vitality) {
this.vitality = vitality;
}
//有参构造方法
public Hero(String name, double aggressivity, double defenf, double vitality) {
super();
this.name = name;
this.aggressivity = aggressivity;
this.defenf = defenf;
this.vitality = vitality;
}
//英雄信息输出
public void information() {
System.out.println(name+"\n攻击力:"
+aggressivity+"\n防御力:"+defenf+"\n生命值:"
+vitality+"\n");
}
//盖伦普攻寒冰
double GAttick(Hero hanbing,Hero gailun) {
System.out.println("盖伦使用普通攻击,攻击了寒冰\n");
hanbing.vitality-=(gailun.aggressivity-hanbing.defenf);
hanbing.information();
return hanbing.vitality;
}
//寒冰普攻盖伦
double HAttick(Hero gailun,Hero hanbing) {
System.out.println("寒冰使用了普通攻击,攻击了盖伦\n");
gailun.vitality-=(hanbing.aggressivity-gailun.defenf);
gailun.information();
return gailun.vitality;
}
void Emergence(double a,Hero hanbing,Hero gailun) {
if(a==10000) {
System.out.println("蛤蟆怪登场,凝视着场上的两名英雄");
a=Math.random()*100;
if(a%2==0) {
System.out.println("蛤蟆怪朝天一跃,吐出吞天炮吞噬了寒冰\n");
Hanbingtest.Hdeid(hanbing);
}else {
System.out.println("蛤蟆怪喷出熔融毒液淹没盖伦\n");
Gailuntest.Gdied(gailun);
}
}
else {
Gailuntest.Gr(hanbing, gailun);
if(hanbing.getVitality()>200) {
System.out.println("敌方“剑豪”出现在了寒冰的身后,并发动了e、q二连");
Hanbingtest.Hdeid(hanbing);
}else {
Hanbingtest.Hdeid(hanbing);
}
}
}
}
测试类
package hero;
import gailun.Gailuntest;
import hanbing.Hanbingtest;
public class Herotest {
public static void main(String[] args) {
//英雄信息
Hero gailun=new Hero("盖伦",63.0,45.0,780.0);
Hero hanbing=new Hero("寒冰",79,34,670);
gailun.information();
Gailuntest.skill();
hanbing.information();
Hanbingtest.skill();
gailun.GAttick(hanbing,gailun);
hanbing.HAttick(gailun,hanbing);
Hanbingtest.Hq(gailun, hanbing);
Gailuntest.Gq(hanbing, gailun);
Hanbingtest.Hw(gailun, hanbing);
Gailuntest.Gw(gailun);
double a=Hanbingtest.He(gailun, hanbing);
hanbing.Emergence(a, hanbing, gailun);
}
}
静态类属性使用(与上面的代码无关)
package oop20210806;
public class Select {
static int ticketsum=0;
static{
for(ticketsum=1;ticketsum<100;ticketsum++) {
System.out.println("投票人数为"+ticketsum);
}
}
public static void main(String[] args) {
Select select=new Select();
System.out.println("\n投票人数达到了"+Select.ticketsum
+"\n选举停止!!!");
}
}