Ethon

为什么要有方法,因为懒惰是一种美德。

   :: 首页  :: 新随笔  ::  ::  :: 管理
  153 随笔 :: 0 文章 :: 2 评论 :: 30万 阅读

Class 语句:声明一个类的名称,以及组成该类的变量、属性和方法的定义。

Class name '参数name必选项,Class 的名称
    statements '一个或多个语句,定义了 Class 的变量、属性和方法
End Class

 初始化与终结化的应用

使用Class语句可以创建一个对象,可以为它编写字段、属性及方法,它只有两个对象事件——InitializeTerminate

复制代码
Class TestClass
    Private Sub Class_Initialize   ' 设置 Initialize 事件,相当于构造函数
        MsgBox("TestClass started")
    End Sub
    Private Sub Class_Terminate   ' 设置 Terminate 事件,相当于析构函数
        MsgBox("TestClass terminated")
    End Sub
End Class

Set X = New TestClass   ' 创建一个 TestClass 实例
Set X = Nothing      ' 删除实例

a.类的事件方法格式是固定的,事件名是固定的,事件只能是Sub不能是Function,事件无参数;
b.类实例通过New来创建,通过Nothing来销毁;
c.记住所有的类实例都是对象,创建与销毁时记得用Set语句,没有Set是错的。
复制代码

 

类可以有公有(Public)和私有(Private)字段:
(1)公有的字段可以外部访问,私有的不能:
(2)可以定义数组字段,且此数组字段可以是动态数组

类可以有公有或者私有的属性:
(1)公有的属性可以外部调用,私有的属性不能
(2)用Property Get定义读属性,用Property Set和Property Let来定义写属性
(3)当定义写属性时,如果此属性封装的是对象字段,则此写属性必须是Property Set
(4)属性不必是成对出现,这样就可以造成只读或只写属性,当然Private任意一方也可以造成这种情况

复制代码
Set MyUser = New User
MyUser.MyAge = "22" '设置对象的MyAge属性值
MyUser.Myname = "john" '设置对象的Myname属性值
MyUser.ToString '调用对象的ToString方法
 
Class User
    Private Str_Name '声明变量Str_Name
    Private Int_Age  '声明变量Int_Age
 
    'Property Get语句,获取属性值或对象引用,Default只与Public一起使用,表示该属性为类的默认属性
    Public Property Get Myname
        Myname = Str_Name
    End Property  
 
    Public Property Get MyAge
        MyAge = Int_Age
    End Property
 
    'Property Let语句,设置属性值
    Public Property Let Myname(New_Name)
        Str_Name = New_Name
    End Property   
 
    Public Property Let MyAge(New_Age)
        Int_Age = new_age
    End Property  
 
    '类方法
 
    Public Sub ToString()
        MsgBox "姓名:"+Myname+" 年龄:"+MyAge
    End Sub
 
End Class
复制代码

 

posted on   Ethon  阅读(1694)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示