欢迎来到天天文库
浏览记录
ID:11865075
大小:34.50 KB
页数:6页
时间:2018-07-14
《c#第7次实验指导书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C#第7次实验指导书本文由lixuan6780贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。事件、继承和多态1.实验目的和要求掌握对象之间通信的基本方法;掌握继承和多态性的实现方法;熟悉接口技术在继承中的应用。2.实验内容(1)创建一组相关类:第二个类响应第一个类的事件,第三个类又响应第二个类的事件。当第一个类的对象发生指定事件时,将引发一系列对象的连锁反应。(2)创建学生类Student及其派生类Undergraduate和Graduate,并在Windows窗体中
2、显示不同类型的学生信息。(3)模拟银行卡支付系统,定义支付接口IPayable,在基类BankCard中实现基本支付功能;在派生类中重载基类方法,实现支付功能的多态性。3.实验指导实验1.模拟连锁反应事件(1)创建C#控制台应用程序L7_1。(2)在程序中新建一个表示太阳的类Sun,在其中定义一个事件OnRise,一个成员方法Rise,并在方法中引发事件。参考源代码如下(太阳只有一个,所以将其定义为静态类):publicstaticclassSun{publicstaticeventEventHandlerO
3、nRise;publicstaticvoidRise(){Console.WriteLine("太阳从东方升起……");if(OnRise!=null)OnRise(null,null);}}(3)在程序中新建一个公鸡类Cock,在其中定义私有字段_name,针对Sun.OnRise事件的处理方法Sun_OnRise,事件OnSing,以及引发该事件的方法Sing;在类的构造函数中初始化字段,并将事件处理方法与事件相关联。参考源代码如下(Sun_OnRise方法中调用了Sing方法,表示太阳升起会使公鸡打鸣)
4、:publicclassCock{privatestring_name;publicCock(stringname){_name=name;Sun.OnRise+=newEventHandler(Sun_OnRise);}privatevoidSun_OnRise(objectsender,EventArgse){Console.WriteLine("公鸡{0}:",_name);Console.WriteLine("雄鸡一声天下白!");this.Sing();}publiceventEventHandle
5、rOnSing;publicvoidSing(){Console.WriteLine("喔喔喔……");if(OnSing!=null)OnSing(this,null);}}(4)在程序中新建一个主人类Host,在其中同样定义字段_name,起床事件OnGetup,起床方法Getup(引发起床事件),养鸡方法Foster,以及Cock.OnSing事件的处理方法c1_OnSing,并在Foster方法中与事件相关联。参考源代码如下(c1_OnSing方法中调用了Getup方法,表示公鸡打鸣会使主人起床):p
6、ublicclassHost{privatestring_name;publicHost(stringname){_name=name;}publiceventEventHandlerOnGetup;publicvoidGetup(){Console.WriteLine("日出而作……");if(OnGetup!=null)OnGetup(this,null)}publicvoidFoster(Cockc1){c1.OnSing+=newEventHandler(c1_OnSing);}privatevoid
7、c1_OnSing(objectsender,EventArgse){Console.WriteLine("主人{0}:",_name);Console.WriteLine("闻鸡起舞!");this.Getup();}}(5)参照Cock类和Host类中的代码,新建狗类Dog和猫类Cat,在其中定义字段_owner以记录其主人对象,定义owner_OnGetup方法以处理Host.OnGetup事件(主人起床时,输出狗叫声“汪汪”和猫叫声“喵喵”;)通过属性Owner封装字段_owner,并在其set访问函
8、数中关联事件和事件处理方法。(6)在程序主方法中依次创建鸡、主人、狗、猫对象,而后调用Sun.Rise方法,参考源代码如下:staticvoidMain(){Cockcock1=newCock("花花");Hosthost1=newHost("祖逖");//四声ti:逖。Host1.Foster(cock1);Dogdog1=newDog("旺财");dog1.Owner=host1;Catcat1
此文档下载收益归作者所有