VB中的属性、方法和事件概念解析
Visual Basic 语言中的所有对象都有它们自己的属性、方法和事件,其中包括窗体和控件。可以将属性视为对象的特性,将方法视为对象的操作,而将事件视为对象的响应。
日常生活中的对象(如氦气球)也具有属性、方法和事件。气球的属性包括可见特性,例如它的高度、直径和颜色。其他属性 (Property) 描述了它的状态(充气或放气)或不可见属性 (Attribute),如它的使用年限。尽管每个气球的属性值可能各不相同,但是所有的气球都具有这些属性。
气球也具有它可以执行的已知方法或操作。它具有充气方法(在其中充满氦气)、放气方法(放出其中的气体)和上升方法(释放气球)。同样,所有的气球都可以执行这些方法。
气球也可以对特定的外部事件作出响应。例如,气球以放气响应被刺破事件或以上升响应释放事件。
属性、方法和事件
气球具有属性(Color、Height 和 Diameter),可对事件 (Puncture) 作出响应并可执行方法(Deflate 和 MakeNoise)。
属性
如果您想设计一个气球程序,它的 Visual Basic 代码可能类似于以下设置气球属性的“代码”。
Balloon.Color = Red
Balloon.Diameter = 10
Balloon.Inflated = True
注意代码的顺序——对象 (Balloon) 后面是属性 (Color),然后是赋值 (= Red)。可以通过替换不同的值来改变气球的颜色。
方法
气球的方法是按如下方式调用的。
Balloon.Inflate
Balloon.Deflate
Balloon.Rise(5)
此顺序类似于属性的顺序,即对象(名词)的后面跟方法(谓词)。在第三个方法中有另外一个称为“参数”的项,它指定气球将要上升的距离。一些方法具有一个或多个进一步描述所要执行的操作的参数。
事件
气球可能按照如下所示来响应事件。
Sub Balloon_Puncture()
Balloon.MakeNoise("Bang")
Balloon.Deflate
Balloon.Inflated = False
End Sub
在这种情况下,代码会描述发生 Puncture 事件时气球的行为。发生此事件时,将使用“Bang”(所发出噪音的类型)参数调用 MakeNoise 方法,然后调用 Deflate 方法。由于气球已经不再充气,所以 Inflated 属性设置为 False。
尽管实际上您无法对一个气球编写程序,但是您可以编写 Visual Basic 窗体或控件。作为程序员,您责无旁贷。您可以决定应该更改哪些属性,应该调用哪些方法或应响应哪些事件来实现想要的外观和行为。
VB中的属性、方法和事件概念解析的更多相关文章
- js中__proto__, property, prototype, 对象自身属性方法和原型中的属性方法的区别
__proto__: 这个属性是实例对象的属性,每个实例对象都有一个__proto__属性,这个属性指向实例化该实例的构造函数的原型对象(prototype). proterty:这个方法是对象的属性 ...
- C#中实现VB中的CreateObject方法
经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等.虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但 ...
- SSM-SpringMVC-10:SpringMVC中PropertiesMethodNameResolver属性方法名称解析器
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 上次的以继承MultiActionController可以实现一个处理器中多个处理方法,但是局限出来了,他们的 ...
- javascript中DOM0,DOM2,DOM3级事件模型解析
DOM 即 文档对象模型. 文档对象模型是一种与编程语言及平台无关的API(Application programming Interface),借助于它,程序能够动态地访问和修改文档内容.结构或显示 ...
- HTML5的Video标签的属性,方法和事件汇总
<video>标签的属性 src :视频的属性 poster:视频封面,没有播放时显示的图片 preload:预加载 autoplay:自动播放 loop:循环播放 controls:浏览 ...
- BackgroundWorker类中主要属性、方法和事件
属性: 1.CancellationPending 获取一个值,指示应用程序是否已请求取消后台操作.通过在DoWork事件中判断CancellationPending属性可以认 ...
- 在C#中使用属性控制 XML 序列化来解析XML
今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...
- VB 中 NumericUpDown 控件 如何为手动输入设定触发事件
Private Sub numDuration_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) ...
- 【转】VB中应用DDE
动态数据交换(dde)是windows应用程序间通讯的基本方法之一,在动态数据交换的过程中,提供数据和服务的应用程序称为服务器,请求数据或服务的应用程序则称为客户. dde交谈是由客户程序启动的.如果 ...
随机推荐
- codeforces 711B B. Chris and Magic Square(水题)
题目链接: B. Chris and Magic Square 题意: 问在那个空位子填哪个数可以使行列对角线的和相等,就先找一行或者一列算出那个数,再验证是否可行就好; AC代码: #include ...
- Eclipse安装Database Development插件。
早期版本的Eclipse,自带Database Development,用着挺方便的,可是自己的最新版Eclipse反而没有.于是乎钻研了下,找到了安装方法.和汉化包安装很类似: 菜单栏里选择 ...
- WPF数字输入框和IP地址输入框
数字输入框 简介 在业务中,我们经常需要限制用户的输入,比如限制输入长度,限制只能输入数字等等.限制输入长度WPF内置的TextBox已经帮我们解决了,但是限制输入数字却并未在WPF中内置解决方案.使 ...
- 解决Gradle DSL method not found: ‘android()’
最近导入as的项目出了这样的问题 这个问题困扰了我很长时间,好吧,搜了半天全都是runProguard的,最后在stackoverflow上搜到解决办法了: http://stackoverflow. ...
- 敏捷软件开发 原则 模式 与实践 - OCP原则
最近在读BOB大叔的敏捷软件开发,特别是TDD那一章节,启示真的不少,从测试驱动开发,讲到驱动表明程序设计的意图,从设计意图讲到对象依赖的解耦,从解耦建立Mock对象. 其实是对每个模块都编写单元测试 ...
- Python-操作Memcache、Redis、RabbitMQ、
Memcache 简述: Memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要 ...
- Netty开发UDP协议
UdpServer package org.zln.netty.five.part07; import io.netty.bootstrap.Bootstrap; import io.netty.ch ...
- ES配置文件参考与参数详解
cluster.name: data-cluster node.name: "data-es-05" #node.data: false # Indexing & Cach ...
- Linux 进程与线程三(线程比较--创建线程参数)
int pthread_equal(pthread_t th1,pthread_t th2); pthread_equal函数比较th1与th2是否为同一线程,由于不可以讲pthread_t数据类型认 ...
- IBatis.net介绍
IBatis.net介绍 IBatis.net 是2001年发起的开源项目,它是一个轻量级的ORM框架,现在IBatisNET已经是属于Apache下的一个子项目了,最新版本是1.6.2. 官方网站: ...