实验3 类和对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验3 类和对象的创建与使用
一、实验目的
1、掌握类的定义和对象的创建;
2、掌握构造方法的作用、格式及重载;
3、掌握修饰词对成员存取权限的限制。
4、掌握实例成员、类成员的定义和使用方法。
二、实验内容
1、定义储蓄账户类,并创建对象模拟银行基本操作。
2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做)
3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。
三、实验步骤
说明:请将第1,3题代码写入实验报告实验步骤处。
1、模拟银行账户功能。
编写程序,模拟银行账户功能。要求如下:
属性:账号、姓名、地址、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。
如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。
取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。
public class AccountOperation
{
public static void main(String [] args)
{
Account account1=new Account("650101","柳眉","天河学院",800.00);
Account account2=new Account("650102","郑杰","天河学院",200.00);
account1.transfer(account1,account2,300.0);
account1.deposit(300.5);
account1.withdraw(200);
account1.withdraw(300);
account1.query();
System.out.println(account1.toString());
//System.out.println(); error!!
}
}
class Account
{
private String account;
private String name;
private String address;
private double balance;
static double minBalance=10.0;
public Account(String account,String name,String address,double balance)
{
this.account=account;
this.address=address;
=name;
this.balance=balance;
}
public void deposit(double cash)
{
System.out.print("您账户原有余额:"+balance+" ");
System.out.print("现存入:"+cash+" ");
balance+=cash;
System.out.println("现有余额:"+balance);
}
public void withdraw(double cash)
{
double temp=balance-cash;
if(temp System.out.println("至少保留余额:"+minBalance); else {balance=temp; System.out.println("取款成功!取款"+cash+" "+"现有余额:"+balance); } } public void tranfer(Account a1,Account a2,double cash) { double temp=a1.balance-cash; if(temp System.out.println("余额不足!"); else { a1.balance-=cash; a2.balance+=cash; System.out.println("转账成功!"); System.out.println(+"转出"+cash+","++"转入"+cash); System.out.println(+"现有余额:"+a1.balance+","++"现有余额:"+a2.balance); } } public void query() { System.out.println("现有余额:"+balance); } public String toString() { return "账号:"+account+" "+"姓名:"+name+" "+"地址:"+address+" "+"现有余额:"+balance; } } 2、两游戏角色决斗。(选做,不需写作业本上) 角色1交手次数+1,生命值-1,经验值+2;角色2交手次数+1,生命值-2,经验值+3。经验值每增加50时,生命值+1;生命值<0判为负。生命值初始为1000,经验值初始为0。给定二个不同的角色,判定交手的胜负关系。 提示: step1:建立角色类,给出相应的成员,并能以生命值、经验值初始化角色对象。 step2:建立fight方法,接收二个角色类型的参数,返回胜者。 step3:初始化二角色,调用fight方法。 class Role { int n,exp,hp; //n:交手次数exp:经验值hp:生命值 Role(int h,int e) //构造函数,以生命值、经验值初始化角色对象 { hp=h; exp=e; } Role fight(Role r1,Role r2) //接收两个角色类型的参数,返回胜者 { while(r1.hp>=0 && r2.hp>=0) //执行计算决斗胜负的逻辑 { r1.n++;//交手次数+1 r1.hp--;//生命值-1 r1.exp+=2;//经验值+2 if( r1.exp%50==0) r1.hp++;//经验值每增加50时,生命值+1 r2.n++;//交手次数+1 r2.hp-=2;//生命值-2 r2.exp+=3;//经验值+3 if(r2.exp%50==0) r2.hp++;//经验值每增加50时,生命值+1 } if(r1.hp>=0)//判断胜负