面向对象的编程基础

面向对象的编程基础

ID:42804370

大小:292.51 KB

页数:31页

时间:2019-09-23

面向对象的编程基础_第1页
面向对象的编程基础_第2页
面向对象的编程基础_第3页
面向对象的编程基础_第4页
面向对象的编程基础_第5页
资源描述:

《面向对象的编程基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.1.4属性一个设计良好的类不仅仅要将类的实现部分隐藏起来,还会限制外部对类中成员变量的存取限制。在C#语言中,可以通过属性来实现。属性是类的一种成员,是用来封装类数据的一种方式,如字体、颜色等属性。使用属性的另一个好处是可以使应用程序看起来更直观。1、属性的使用用属性声明的方式来对属性进行定义,通过访问器get和访问器set提供外部对私有成员的访问。根据使用情况不同,可以只用get或者只用set,也可以同时使用get和set。get:用来读取数据成员的值。set:用来设置数据成员的值。[例3-10]声明属性。u

2、singSystem;namespacePropertyExample{publicclassMyClass{privateintnumber=0;publicintMyNumber{get{returnnumber;}set{if(value>0){number=value;//value是关键字,其值由编译器自动生成}}}}输出结果:05C#还提供自动实现的属性定义!-不用声明对应私有字段如PublicintMyNumber{get;set;}PublicintMyNumber{get;privateset;}

3、//read-onlypublicclassProgram{publicstaticvoidMain(){MyClassme=newMyClass();Console.WriteLine(me.MyNumber);me.MyNumber=5;Console.WriteLine(me.MyNumber);Console.ReadLine();}}}在可视化设计中,属性通常显示在设计工具的属性窗口中。2、属性与方法的区别(1)属性不必使用括号,但方法一定要使用括号。(2)属性不能指定参数,方法可以指定参数。(3)属性不

4、能使用void类型,方法则可以使用void类型。3.1.5事件“事件”是指当对象发生某些事情时,向其他对象提供消息的一种方法。事件一般有两个角色:事件发送方触发事件的对象事件接收方事件发生时被通知的对象。事件发送方对象会自行维护本身的状态信息。当本身的状态信息变动时,便触发一个事件,并通知所有的事件接收方。事件接收方可以注册感兴趣的事件,一般提供一个事件处理程序,以便在事件发送方触发一个事件后,会自动执行这段程序代码的内容。事件最常见的用途是用于图形用户界面。一般情况下,每个控件都有一些事件,当用户对控件对象进行某

5、些操作(如单击某个按钮)时,都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。Windows的消息系统消息队列:Windows能够为每个应用程序维护一个消息队列。应用程序必须从消息队列中获取消息,然后分派给某个窗口。消息循环:通过这个循环机制,应用程序从消息队列中检索消息,再把它分派给适当的窗口,然后继续从消息队列中检索下一条消息,再分派给适当的窗口,依次进行。窗口过程:每个窗口都有一个窗口过程来接收传递给窗口的消息,它的任务就是获取消息然后

6、响应它。一个消息从产生到被一个窗口响应,其中有五个步骤:1)系统中发生了某个事件。2)Windows把这个事件翻译为消息,然后把它放到应用程序的消息队列中。3)应用程序从消息队列中接收到这个消息,把它存放在记录中。4)应用程序把消息传递给一个适当的窗口的窗口过程。5)窗口过程响应这个消息并进行处理。步骤3和4构成了应用程序的消息循环。消息循环往往是Windows应用程序的核心,因为消息循环使一个应用程序能够响应外部的事件。消息循环的任务就是从消息队列中检索消息,然后把消息传递给适当的窗口。如果消息队列中没有消息,W

7、indows就允许其他应用程序处理它们的消息。Windows应用程序最大的特点就是其图形化的操作界面,其图形化界面是建立在事件驱动和消息响应处理机制这个基础之上的。3.1.6索引器索引器用于封装内部集合或数组。索引器在语法上方便了程序员将类、结构或接口作为数组进行访问。要声明类或结构上的索引器,需要使用this关键字。例如:publicintthis[intindex]//索引器声明{//getandsetaccessors}【例3-11】索引器的声明和用法。usingSystem;namespaceIndexEx

8、ample{classDayCollection{string[]days={"Sun","Mon","Tues","Wed","Thurs","Fri","Sat"};publicintthis[stringday]{get{return(GetDay(day));}}publicstringthis[inti]{get{return(days[i]);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。