欢迎来到天天文库
浏览记录
ID:20569637
大小:521.91 KB
页数:45页
时间:2018-10-13
《vba面向对象程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、9.1面向对象基本概念面向对象的系统观不同于结构化程序设计思想,基于面向对象的系统观认为,一个系统是由若干对象和这些对象间的交互构造而成。面向对象系统观反映了基于面向对象的方法如何构造软件系统。9.1.1面向对象核心概念对象属性方法和事件接口消息类对象对象就是现实或抽象世界中具有明确含义或边界的事物。例如学生“江华”就是一个对象。对象是属性和方法(或事件)的封装体。VBA包括:窗体、命令按钮、组合框等对象。这些对象用来构成与用户交互的界面元素对象示意图2.属性属性用来刻画对象所具备的特性,属性具有属性名
2、和属性值两个部分。例如江华的籍贯为“江西赣州”“江西赣州”为学生“江华”的籍贯属性取值属性属性取值不同,可以使对象具有不同的状态。对图形化界面中的命令按钮来说,属性用来控制其显示的特性,例如“标题”属性的取值为“确定”,决定命令按钮上显示的文字为“确定”。命令按钮的“可用”属性决定命令按钮是否有效命令按钮部分属性3.方法和事件方法(或事件)是对象具有的某种处理功能,在程序代码上表现为一个程序过程。例如学生“江华”的“注册学籍”、“选修课程”操作就是学生对象具有的方法。方法和事件不同之处对象的方法调用是使
3、用特定格式的显式调用事件的调用方式是隐式的。即通常不存在一条语句来说明事件被调用。事件的调用或触发是由用户的操作来实现的,这被称为事件驱动。事件例子例如:命令按钮上存在鼠标的单击事件,当用户使用鼠标指向该命令按钮并单击鼠标左键时,将触发在命令按钮上单击事件中预先编写的代码。命令按钮具有的事件通常一个对象包括很多事件,命令按钮具有的事件。4.接口接口是对象的特殊属性和方法(或事件),它表示一个对象为其他对象提供的服务。这些服务包括一个对象向其他对象公开的属性和方法(或事件)。一个对象接口中的属性和方法(或
4、事件)为其他对象所知道,故其他对象通过发送消息到该对象来实现对象间的交互。5.消息消息实现了对象间的交互。一个对象通过接口向外界公布其提供的属性和方法(或事件),其他对象通过发送一个特定的消息来与这个对象进行交互,可能有结果返回到发送消息的对象,也可能没有结果返回发送消息的对象。消息的描述除了和对象公布的属性和方法(或事件)有关外,它还有特定的格式。6.类在面向对象程序设计中,为提高程序代码的重用,一个特定对象的属性和方法(或事件)由一个特定类来定义。类可以视为生产多个具有相同属性和方法(或事件)的对象
5、模板。一般利用类来组织相似的多个对象。类在面向对象系统和程序中,具有相同结构和功能的对象一般用类进行描述,并把一个特定对象称为其所属类的实例。类描述的是具有相同属性和方法(或事件)的一组对象。类的例子例如:江华和杨阳都是学生,即他们是“学生”类的实例,他们都具有“学号”、“姓名”等属性,同时都具有“注册学籍”、“选修课程”等操作方法。为此面向对象方法中提出将具有相同属性和方法(或事件)对象抽象到类的方法,即类是对象的抽象,而一个具体对象是某个类的实例。类的例子由于类与对象使用相同的描述方式,即都具有属性
6、和方法(或事件)。这使得类、对象的概念容易混淆。将一个图章看成是一个类,而图章所盖出的图章印是一个对象。在面向对象概念中,类是对象的抽象,对象是类的实例。9.1.2类或对象的特性对象的可标识性类或对象的封装性对象的状态性对象的自治性类的继承性注意区分:类还是对象的特性,或两者共有的特性对象的可标识性每个对象实例都有标识自己的名称(Name)或标识号(英语为Identifier,简写为ID)。例如,如果图章具有自动改变序号功能,则每个实例化出来的图章印,虽具有相同的属性和操作,但它们具有不同的标识号——序
7、号不同。对象可标识性示例左侧选中的复选框名称为Check0名称“Check0”被用来标识左侧的复选框对象。2.类或对象的封装性类(或对象)的封装性表现在对象将属性和方法(或事件)封装在对象中。对象封装的好处是可以隐藏对象内部的实现细节,即所谓的信息隐蔽原则,也可以理解为黑箱。只关心它提供的功能,不关心对象的功能是如何编写实现。可以杜绝由于某个对象的方法(或事件)改变对其他对象的影响,通过独立的分治原则可以减低问题的复杂性。3.对象的状态性对象的状态性是通过给对象的属性赋值来表现的。即对象的取值不同,对象
8、就处于不同状态。例如,学生“江华”对象。这里类为“学生”,类“学生”的姓名属性值为“江华”。4.对象的自治性由于对象是属性和方法(或事件)的封装体。对象状态的改变是由该对象自身实施的。即其他对象通过发送消息,请求一个对象改变其状态,该对象的状态是否改变取决于该对象当前的状态,在某些状态下可能无法改变该对象的状态,这称为对象的自治性。5.类的继承性面向对象的概念中,已经讨论了类与对象间的关系,类与类之间是否存在关系呢?在语义上,一个类与另一个
此文档下载收益归作者所有