面向对象的设计思想(控制台程序)
实验二
【实验目的】
熟练掌握面向对象程序设计的概念,如类、对象、继承、多态、封装及其数据隐藏等,熟练掌握类的定义与使用,能够利用面向对象技术进行程序设计。
【实验要求】
1.是一个基于SDK开发的实现面向对象技术的控制台应用程序,功能自定义。
2.要体现面向对象程序设计的概念,如类、对象、继承、多态、封装及其数据隐藏等。
【实验步骤】(要求自己填写详细的实验步骤,设计思路和关键代码)
【实验体会及存在问题】要求自己填写,感想、设计时碰到的问题,包括设计思想、调试等)
namespace 实验二 { //建立一个封装事件所需要的数据的类OnEventKeyArgs public class OnEventKeyArgs : EventArgs { private char word; public OnEventKeyArgs(char word) : base() { this.word = word; } public char Word { get { return word; } } } //事件处理程序 public class EventKeyHanderClass { public void EventKeyFound(object sender, OnEventKeyArgs EventKeyEventArgs) { Console.WriteLine(EventKeyEventArgs.Word); } } //声明一个名为EventKeyHandler的标准委托 public delegate void EventKeyHandler(object sender, OnEventKeyArgs EventKeyArgs); public class Char { //声明一个事件OnEventKey public event EventKeyHandler OnEventKey; public Char() { OnEventKey = null; } public virtual void print() { Console.WriteLine("我是个字母"); } } public class A : Char { public event EventKeyHandler OnEventKey; private char a = 'A'; public override void print() { Console.WriteLine("我是字母A"); OnEventKey(this, new OnEventKeyArgs(a)); } public char getA { get { return a; } } } public class B : Char { private char b = 'B'; public char getB { get { return b; } } public override void print() { Console.WriteLine("这是字母B"); } } }
代码入口
namespace 实验二 { class Program { public static void AddChar(Char c) { c.print(); } static void Main(string[] args) { Char c = new Char(); A a = new A(); B b = new B(); c.OnEventKey += new EventKeyHandler(new EventKeyHanderClass().EventKeyFound); a.OnEventKey += new EventKeyHandler(new EventKeyHanderClass().EventKeyFound); b.OnEventKey += new EventKeyHandler(new EventKeyHanderClass().EventKeyFound); //c.input();//开始->触发事件 AddChar(a); AddChar(b); AddChar(c); } } }
感觉王育齐的实验报告很难,因为他只提供要求,不像以前赵红直接要求我们做什么题目。。。但我还是挺喜欢这个老师的,因为他讲课会笑。。轻松。。