C#面向对象程序设计
实验指导及报告书
姓 名:______________ 学 号:______________ 班 级:______________ 指导教师:______________
计算机与电子信息工程系
2013
实验五 继承与多态编程练习
一、实验目的
1.了解类之间的关系,能区分关联关系中的聚合和组合的区别; 2.学习并掌握使用多个类对象构建一复杂系统。 3.理解继承的含义,掌握派生类的定义方法和实现; 4.掌握抽象类和抽象方法的使用; 5.编写体现类的继承性的程序;
6. 掌握多态性的概念并能编写体现类多态性的程序。
二、实验内容
1、创建一个应用程序,实现下面的UML图。
Step1:
实现银行帐户Account类:
1)私有的属性balance:用于保存帐户中的当前余额。 2)公有带参构造方法:对balance 属性进行了初始化。 3)公有方法getBalance: 用于取得当前帐户余额。
4)公有方法deposit: 用于把数量为amount 的现金存储到当前帐户中。 5)公有方法withdraw: 用于从当前帐户中提取数量为amount 的现金。
Account类实现代码:
Step2:
实现Customer类
UML图中,Account类和Customer类之间的关系是聚合,即Account类的对象作为Customer类的成员,图中箭头上方的是对象名,两端的1表示一对一关系,即一个Customer类的对象含有一个Account类的类对象作为成员。 1)私有属性:firstName, lastName和account
2)公有的带参构造方法:用于对firstName, lastName属性进行了初始化。 3)公有的成员方法getFirstName:返回firstName的属性 4)公有的成员方法getLastName:返回lastName的属性。 5)公有的成员方法setAccount:对对象成员account 进行设置 6)公有的成员方法getAccount: 取得对象成员account 的值 Customer类实现代码:
Step3:
实现Bank类
bank对象只是简单地记住它和它的客户之间的联系。通过一个Customer数组来实现这个一对多的聚合关系。还需要设置一个整型的属性来存放当前银行中客户的数目。
1)私有属性:
customers :一个Customer类的对象数组。
numberOfCustomers:银行当前客户的数量,每增加一个客户,其值加一。 2)公有的构造方法:
用适当的数组长度对customers对象数组进行初始化。 3)公有的成员方法addCustomer:
通过参数(first name, last name)创建一个新的Customer对象,并把它存放 在customers对象数组中。 同时它必须增加numberOfCustomers的值。 4)公有的成员方法getNumOfCustomers:
返回numberOfCustomers 属性的值。 5)公有的成员方法getCustomer成员方法:
返回对象数组中指定下标为index的customer对象。 Customer类实现代码:
Step4:
编写测试程序如下 public class Testing
{ public static void Main(String[] args) {
Bank bank=new Bank();
bank.addCustomer( bank.addCustomer(
bank.addCustomer( bank.addCustomer(
bank.getCustomer(0).setAccount(new Account(500)); bank.getCustomer(1).setAccount(new Account(500)); bank.getCustomer(2).setAccount(new Account(500)); bank.getCustomer(3).setAccount(new Account(500)); for(int i=0;i Customer c=bank.getCustomer(i); Console.WriteLine( c.getFirstName()+ } …… 此处隐藏63字 …… Console.WriteLine ( acct.withdraw(150); Console.WriteLine ( acct.deposit(22.50); Console.WriteLine ( acct.withdraw(47.62); Console.WriteLine ( c.getLastName()+} } 程序输出后的结果: