1、实验五 方法的重载和静态成员【实验目的】1.巩固掌握构造方法的作用和定义;2.掌握方法重载的意义和实现方式;3.掌握静态成员的使用方法。【实验准备】复习配套教材相关章节的内容;【实验内容】项目一:1. 定义一个游戏中 Hero 英雄的类,在该类中定义英雄的名字, 生命值和等级 3 个属性,定义一个无参构造方法完成对名字、生命值和等级的初始化,分别赋初值为“无名英雄” 、100 和 1。同时实现名字和英雄信息的输出。public class Hero String name; int healthPower;int grade;public Hero() this.name =“无名英雄 “;t
2、his.healthPower = 100;this.grade=1; void showInfo() System.out.println(“英雄信息“);System.out.println(“名字:“ + this.name);System.out.println(“生命值:“ + this.healthPower);System.out.println(“类型:“ + this.grade);2. 在上一步的基础上,为英雄再定义拥有一个参数的构造方法,第一个参数传入英雄的名字,第二个参数传入一个英雄类型的值,如果为 1,则为普通英雄,生命值为 100;如果该值为 2,则为高级英雄,生命
3、值初始化为 200;如果该值为 3,则为超级英雄,生命值初始化为 300。public Hero(String name, int grade) this.name = name;if (grade = 3) this.healthPower = 300;this.grade = 3; else if (grade = 2) this.healthPower = 200;this.grade = 2; else this.healthPower = 100;this.grade = 1;3. 为英雄添加一个基本战斗的方法,该方法拥有一个英雄类类型的参数,当传入另一个英雄时,能降低对方 10 点
4、血。 再增加一个绝招战斗的重载方法,加入一个绝招类型参数,通过输入不同绝招参数,降低对方不同的血量(这里简化为:1,多杀伤 3 点血,2,多杀伤 6 点血,3,多杀伤 10 点血) 。void fight(Hero opponent) opponent.healthPower -= 10;void fight(Hero opponent, int skill) opponent.healthPower -= 10;if (skill = 3) opponent.healthPower -= 10; else if (skill = 2) opponent.healthPower -= 6; e
5、lse if (skill = 1) opponent.healthPower -= 3;4. 在主类的主方法中编写代码,测试。public static void main(String args) / TODO code application logic hereHero superHero=new Hero(“蜘蛛侠“,3);Hero opponent=new Hero();/对手opponent.showInfo();superHero.fight(opponent);opponent.showInfo();superHero.fight(opponent,2);opponent.s
6、howInfo();项目二:设计一个 BankAccount 类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。BankAccount 类包括,账号(BankAccountId) 、开户日期Date(日期 ), Rest(余额)。有一个构造方法和三个实例方法 Bankin()(处理存入账) ,Bankout()(处理取出账 )和一个负责生成账号的自动增长的方法 (构造方法中调用),另有一个静态方法实现输出,以供存取帐时调用。static void prt(String s)System.out.println(s); 【总结与体会】请思考 3 分钟以上。注意通过第一个项目体会,掌
7、握方法的重载;第二个项目注意理解静态属性和方法。课后作业:1、 编写一个类 Book,代表教材:具有属性:名称(title)、页数(pageNum)、种类(type)具有方法:detail,用来在控制台输出每本教材的名称、页数、种类具有两个带参构造方法:第一个构造方法中,设置教材种类为“计算机”(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定。2、编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。思路:设计一个学生类 Stud,除了包括 no(学号)、name(姓名)、和 deg(成绩)数据成员外。有两个静态变量 sum 和 num,分别存放总分和人数,有一个构造方法、一个普通实例方法disp()和一个静态方法 avg()(用于输出当前人数和平均分)。