今日学习,封装

熟练并掌握

对类属性进行私有化,并设置访问方法;

对类进行包封装,学习调用类方法及要求;

对类进行属性、方法静态设置、了解静态代码块的作用;

第一个英雄技能类

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选举停止!!!");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值