实验五 方法的重载和静态成员_第1页
实验五 方法的重载和静态成员_第2页
实验五 方法的重载和静态成员_第3页
实验五 方法的重载和静态成员_第4页
实验五 方法的重载和静态成员_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验五方法的重载和静态成员【实验目的】1.巩固掌握构造方法的作用和定义;2.掌握方法重载的意义和实现方式;3.掌握静态成员的使用方法。【实验准备】复习配套教材相关章节的内容;【实验内容】项目一:1.定义一个游戏中Hero英雄的类,在该类中定义英雄的名字,生命值和等级3个属性,定义一个无参构造方法完成对名字、生命值和等级的初始化,分别赋初值为“无名英雄”、100和1。同时实现名字和英雄信息的输出。publicclassHeroStringname;inthealthPower=100;intgrade;publicHero()="无名英雄"this.heal

2、thPower=100;this.grade=1;voidshowInfo()System.out.println("英雄信息");System.out.println("名字:"+this.healthPower);System.out.println("生命值:"+this.healthPower);System.out.println("类型:"+this.grade);2.在上一步的基础上,为英雄再定义拥有一个参数的构造方法,第一个参数传入英雄的名字,第二个参数传入一个英雄类型的值,如果为1,则为普通英雄,

3、生命值为100;如果该值为2,则为高级英雄,生命值初始化为200;如果该值为3,则为超级英雄,生命值初始化为300。publicHero(Stringname,intgrade)=name;if(grade=3)this.healthPower=300;this.grade=3;elseif(grade=2)this.healthPower=200;this.grade=2;elsethis.healthPower=100;this.grade=1;3.为英雄添加一个基本战斗的方法,该方法拥有一个英雄类型的参数,当传入另一个英雄时,能降低对方10点血。再增加一个绝招战斗的重载

4、方法,加入一个绝招类型参数,通过输入不同绝招参数,降低对方不同的血量(这里简化为:1,多杀伤3点血,2,多杀伤6点血,3,多杀伤10点血)。voidfight(Heroopponent)opponent.healthPower-=10;voidfight(Heroopponent,intskill)opponent.healthPower-=10;if(skill=3)opponent.healthPower-=10;elseif(skill=2)opponent.healthPower-=6;elseif(skill=1)opponent.healthPower-=3;4.在主类的主方法中编

5、写代码,测试。publicstaticvoidmain(Stringargs)/TODOcodeapplicationlogichereHerosuperHero=newHero("蜘蛛侠",3);Heroopponent=newHero();/对手opponent.showInfo();superHero.fight(opponent);opponent.showInfo();superHero.fight(opponent,2);opponent.showInfo();项目二:设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。

6、BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Rest(余额)。有一个构造方法和三个实例方法Bankin()(处理存入账),Bankout()(处理取出账)和一个负责生成账号的自动增长的方法(构造方法中调用),另有一个静态方法实现输出,以供存取帐时调用。BankAccount类:publicclassBankAccountstaticlongbankAccountIdSpeed=600000000000000000l;StringbankAccountId;Stringdate;floatrest;publicBankAccount(Stringd

7、ate,floatrest)bankAccountId=this.createBankAccount();this.date=date;this.rest=rest;StringcreateBankAccount()bankAccountIdSpeed+;returnString.valueOf(bankAccountIdSpeed);voidBankIn(floatrest)/存钱prt("存款前余额:"+this.rest);this.rest+=rest;prt("存款后余额:"+this.rest);voidBankOut(floatrest)/

8、取钱prt("取款前余额:"+this.rest);this.rest-=rest;prt("取款前余额:"+this.rest);voidshowBankInfo()prt("帐号:"+this.bankAccountId);prt("余额:"+this.rest);staticvoidprt(Strings)System.out.println(s);主类:publicclassBank/*paramargsthecommandlinearguments*/publicstaticvoidmain(String

9、args)BankAccountb1=newBankAccount("2012-03-24",500);b1.showBankInfo();BankAccountb2=newBankAccount("2012-03-24",1000);b2.showBankInfo();BankAccountb3=newBankAccount("2012-03-24",900);b3.BankIn(300);b3.showBankInfo();b3.BankOut(200);b3.showBankInfo();b1.showBankInfo();/T

10、ODOcodeapplicationlogichere【总结与体会】通过本次实验巩固了掌握构造方法的作用和定义,掌握了方法重载的意义和实现方式与静态成员的使用方法。同时也发现了本身的一些不足,还要继续努力去弥补这些不足。课后作业:1、编写一个类Book,代表教材:具有属性:名称(title)、页数(pageNum)、种类(type)具有方法:detail,用来在控制台输出每本教材的名称、页数、种类具有两个带参构造方法:第一个构造方法中,设置教材种类为“计算机”(固定),其余属性的值由参数给定;第二个构造方法中,所有属性的值都由参数给定。Book类:publicclassBookStringti

11、tle;intpageNum;Stringtype;publicvoiddetail()System.out.println("=教材信息=");System.out.println("名称:"+this.title);System.out.println("页数:"+this.pageNum);System.out.println("种类:"+this.type);publicBook(Stringtitle,intpageNum)this.title=title;this.pageNum=pageNum;thi

12、s.type="计算机"publicBook(Stringtitle,intpageNum,Stringtype)this.title=title;this.pageNum=pageNum;this.type=type;主类:publicclassBooks/*paramargsthecommandlinearguments*/publicstaticvoidmain(Stringargs)Bookb1=newBook("C语言",125);b1.detail();Bookb2=newBook("C#",150,"编程语言&

13、quot;);b2.detail();/TODOcodeapplicationlogichere运行结果:=教材信息=名称:C语言页数:125种类:计算机=教材信息=名称:C#页数:150种类:编程语言2、编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。思路:设计一个学生类Student,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。有两个静态变量sum和num,分别存放总分和人数,有一个构造方法、一个普通实例方法disp()和一个静态方法avg()(用于输出当前人数和平均分)。Student类:publicclassStudent

14、intno;Stringname;floatdeg;staticfloatsum=0;staticintnum=0;/学号/姓名/成绩/总分/人数publicStudent(intno,Stringname,floatdeg)this.no=no;=name;this.deg=deg;sum+=deg;num+;publicvoiddisp()System.out.println("=学生信息=");System.out.println("学号:"+this.no);System.out.println("姓名:"+

15、);System.out.println("成绩:"+this.deg);publicstaticvoidavg()System.out.println("当前人数:"+Student.num);System.out.println("平均成绩为:"+Student.sum/Student.num);主类:publicclassStudentScore/*paramargsthecommandlinearguments*/publicstaticvoidmain(Stringargs)Students1=newStudent(11111,"张三",80);s1.disp();Students2=newStudent(11112,"李四",90);s2.disp();Students3=newStudent(11113,"王二&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论