VB中属性的定义是什么

VB中各个空间都有其对应的属性窗口,这个我知道,但是这个属性的定义到底是什么呢?什么样子的东东才算是一个属性呢?或者说我怎样才算定义了一个属性呢?如果我在模块中定义一个变... VB中各个空间都有其对应的属性窗口,这个我知道,但是这个属性的定义到底是什么呢?什么样子的东东才算是一个属性呢?或者说我怎样才算定义了一个属性呢?

如果我在模块中定义一个变量,那么他能被称之为一个属性吗?如果这是一个属性,那就意味着我就必须要写他的属性过程才能使用了,而如果这个不算是一个属性的话,要怎样去定义一个属性呢?而且这样定义的一个属性和我在模块中定义的一个变量的区别难道就只是我可以通过属性过程来设置他的读写?
那么属性的意义在于什么?

抱歉只有29分,所以只能拿出20出来。
展开
 我来答
然后去远足
2014-07-26 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2436万
展开全部

有 Property 关键字修饰的方法叫属性,其中只有 Let 的叫只写属性,只有 Get 的叫只读属性,既有 Get 又有 Let 的叫可读写属性。

 

例如:

Private myHair As Long  
 
Public Property Let Hair(ByVal vData As Long) 
    '向属性指派值时使用,位于赋值语句的左边。 
    myHair = vData 
End Property 

Public Property Get Hair() As Long 
    '检索属性值时使用,位于赋值语句的右边。 
    Hair = myHair 
End Property

这样就有了一个 Hair 属性,既可读又可写。

 

属性是对象的一个特性,你要写也是在“类模块”里写,而不是“模块”里写。

追问
您的意思就是“类模块”中定义的变量,并且有相应的属性过程定义的才被认为是属性?
那如果这样的话,我在类模块中定义一个public的常量,和我在类模块中定义一个可读写的属性,这两者间其实是没有什么调用上的区别了?甚至我可以认为这个public的常量就是一个可读写的属性?
追答

即使是可读写的属性,跟公共字段也不一样。

 

一般来讲字段是封闭的,属性才是公开的。另外可以用属性来进行数据合法性检验。

 

比如存在一个 integer 类型的字段 myVolumn 代表音量,我希望它只能从 0-100 内取值,可以就可以:

Private myVolumn As Integer
  
Public Property Let Volumn(ByVal vData As Integer)
    If (vData < 0) Then
        myVolumn = 0
    Else If (vData > 100) Then
        myVolumn = 100
    Else
        myVolumn = vData 
    End If 
End Property 
 
Public Property Get Volumn() As Integer
    Volumn = myVolumn 
End Property

当然,对于非法的属性赋值,还可以直接抛出异常,这里不赘述了。

 

这就是单纯的公共变量所做不到的。

ACAO_BD
2014-07-26 · 超过11用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:27.8万
展开全部
比如说人(控件),有 身高(Height),这个叫做属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式