今日学习,封装

熟练并掌握

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

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

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

第一个英雄技能类

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

内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
在无线通信领域,天线阵列设计对于信号传播方向和覆盖范围的优化至关重要。本题要求设计一个广播电台的天线布局,形成特定的水平面波瓣图,即在东北方向实现最大辐射强度,在正东到正北的90°范围内辐射衰减最小且无零点;而在其余270°范围内允许出现零点,且正西和西南方向必须为零。为此,设计了一个由4个铅垂铁塔组成的阵列,各铁塔上的电流幅度相等,相位关系可自由调整,几何布置和间距不受限制。设计过程如下: 第一步:构建初级波瓣图 选取南北方向上的两个点源,间距为0.2λ(λ为电磁波波长),形成一个端射阵。通过调整相位差,使正南方向的辐射为零,计算得到初始相位差δ=252°。为了满足西南方向零辐射的要求,整体相位再偏移45°,得到初级波瓣图的表达式为E1=cos(36°cos(φ+45°)+126°)。 第二步:构建次级波瓣图 再选取一个点源位于正北方向,另一个点源位于西南方向,间距为0.4λ。调整相位差使西南方向的辐射为零,计算得到相位差δ=280°。同样整体偏移45°,得到次级波瓣图的表达式为E2=cos(72°cos(φ+45°)+140°)。 最终组合: 将初级波瓣图E1和次级波瓣图E2相乘,得到总阵的波瓣图E=E1×E2=cos(36°cos(φ+45°)+126°)×cos(72°cos(φ+45°)+140°)。通过编程实现计算并绘制波瓣图,可以看到三个阶段的波瓣图分别对应初级波瓣、次级波瓣和总波瓣,最终得到满足广播电台需求的总波瓣图。实验代码使用MATLAB编写,利用polar函数在极坐标下绘制波瓣图,并通过subplot分块显示不同阶段的波瓣图。这种设计方法体现了天线阵列设计的基本原理,即通过调整天线间的相对位置和相位关系,控制电磁波的辐射方向和强度,以满足特定的覆盖需求。这种设计在雷达、卫星通信和移动通信基站等无线通信系统中得到了广泛应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值