对象仅仅是特定模板(即类)的实例。类包含的代码定义了其对象的行为,还定义了包含对象专用数据的实例变量。 使用Class关键字可以创建类,类包含了组成类的变量、方法、属性和事件的定义(声明)和实现(代码)。每个基于这个类创建的对象都会具备相同的方法、属性和事件,以及类中的字段定义的一组定制数据。
1.Class关键宇

Visual Basic项目是由一组带有.vb扩展名的文件组成的。每个文件都可以包含多个类。

最常用的方法是让每个文件只包含一个类。这是因为使用Visual Studi0 2010 Solution Explorer和代码编辑环境很容易在文件间导航,以找到代码。如果把所有这些类包含在一个类文件中,SolutionExplorer只会显示一条记录。

Visual Studio IDE提供了Class View窗口。如果准备在每个.vb文件中设计多个类,就可以用Class View窗口对代码进行迅速且有效的导航,无须在代码文件之间手动切换就可以快速定位类。要迅速显示Class Mew窗口,可以从Mew菜单中选择Class Window.

即使每个文件只有一个类,Class View窗口还是非常有用的,因为它提供了整个应用程序基于类的结构视图。
    2.字段
         字段是指在类中声明的,运行应用程序时可用于每个对象的变量口每个对象都会获得它自身的数据集一简单地说,每个对象都会有字段的一个副本。类是创建特定对象的模板。在类中定义的变量也是模板,每个对象都会得到这些变量的副本,以存储自己的数据。

使用下面的关键字可以控制字段的作用域。

  • Private只能用于类中的代码。
  • Friend只能用于项目或组件中的代码。
  • Protected只能用于从该类继承的类(详见第3章)。
  • Protected Friend用于项目或组件中的代码,以及项目内或项目外从该类继承的类。
  • Public用于类外部的代码和引用该程序集的任何项目。

通常,字段使用Prtvatc关键字来声明,使之仅用于每个类实例中的代码。选择其他选项应格外当心,因为其他选项允许类外部的代码直接访问变量——也就是说,可能会改变值,而且代码无法检测到已发生的改变。

3.方法
        在使用对象时,通常会用到对象的服务(或函数)。它们利用对象自身的数据或者作为参数传递到方法中的数据处理信息,生成结果或执行操作。

方法就是在类中编写的简单例程,用来实现服务以提供给使用对象的用户。一些方法会返回值或者给调用代码提供信息,这些方法称为询问方法口其他的称为命令方法,它们只执行操作,不给调用代码返回任何信息。

用Sub关键字声明的方法不会返回值。

4.有返回值的方法
      如果方法中生成了需要返回的值,就需要使用Function关键字:
    在声明函数时,需要指明返回值的数据类型。使用Retum关键字可以返回相应数据类型的任何值。不使用Retum关键字,通过设定函数名称的值,也可以返回值。

Public Function Age ()  As  Integer
    Age=CInt (DateDiff (Datelnterval .Year, mdtBirthDate,Now ()))
End Nnction

5.属性

.NET环境提供了一种特殊的方法,称为属性。属性是专门为设置和获取数据值而设计的方法。

Public  Property Name .()  As  String
    Get
       Return _Name
    End Get
   Set(ByVal Value As String)
          _Name = Value
   End Set
End Property

定义属性的这个方法实际上创建了一个字段_Name,该字段没有在代码中定义,而是由编译器定义。对于大多数属性而言,在获取和设置过程中并不计算值,所以这是定义属性的最简单方式。
      Get或者Set块的作用域可以进一步限制。例如,如果希望所有的代码都能获取属性值,但只允许项目内的其他代码修改属性,则可以保持Property本身的作用域为Public,然后把Set块的作用域设置为Friend:

Public  Property Name ()  As  String
   Get
    Return mName
  End Get
  Friend Set(ByVal Value As String)
     mName=Value
  End  Set
End Property

6.参数化属性

Hashtable 类

https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.hashtable?view=netframework-4.8

Public Class Person
    Private mPhones As New Hashtable
Public Property Phone(ByVal location As String) As String
      Get
         Return  CStr (mPhones.Item (Location))
      End Get
      Set (ByVal Value As  String)
         If Phones.ContainsKey(location) Then
              Phones.Item (location)=Value
         Else
            Phones.Add(location, Value)
         End If
   End Set
End Property

VB 2010 (11)创建类相关推荐

  1. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  2. C# 反射 通过类名创建类实例

    "反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用 ...

  3. 使用StarUML创建类图

    1.综述(What) StarUML是一种生成类图和其他类型的UML图表的工具.本文是一个使用StarUML创建类图(Java语言描述)的简明手册. StarUML(简称SU),是一种创建UML类图, ...

  4. 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)

    27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...

  5. c++11 thread类的简单使用

    一个thread对象就代表一个线程执行,当对象创建完成后,线程函数就开始执行,下面这段话是c++11的thread类介绍. An initialized thread object represent ...

  6. Eclipse 答疑:Eclipse 使用 Amateras UML 创建类图点击 Finish 没反应解决方式汇总

    文章目录 前言 一.问题产生场景 1.1.Amateras UML 创建类图没反应 二.问题原因分析 三.问题定位及解决 3.1.定位检查版本支持信息 3.2.问题确认过程 3.3.解决方式验证 四. ...

  7. VB中什么是类,类模块有什么作用

    一.什么是类? 用面向对象的编程思想来看,类就是存储数据同时给一组相关代码赋予协调功能的方式.类是面向对象编程的核心. VB最为人垢病的是它的面向对象特性.实际上VB是一种基于对象的开发工具.在VB中 ...

  8. Linux C++11——多线程类thread

    一.并发和并行 1.并行(parallel) 指在同一时刻,有多条指令在多个处理器上同时执行.就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑.所以无论从微观还是从宏观来看,二者都是一起执行的. ...

  9. Python、设计原则和设计模式-创建类设计模式

    Python.设计原则和设计模式 前言 程序的目标:高内聚 低耦合 有哪些设计原则 设计原则是「高内聚.低耦合」的具体落地. 单一职责原则要求在软件系统开发.设计中,一个类只负责一个功能领域的相关职责 ...

最新文章

  1. CLion 2017 注册码
  2. python的类方法可以用对象和类名来调用吗_怎么调用python中的类方法
  3. Java中是否可以继承String类,为什么
  4. 2001年的FLTK设置教程
  5. obs 直播 多路推流插件 简介
  6. CString类的转换
  7. 什么是线程池,连接池,线程池和连接池之间的区别
  8. js运算符+运算方式
  9. 星际通讯+基于区块链的价值共享互联网即时通讯应用平台
  10. 电脑常见故障排除_附近上门维修洗衣机不脱水|洗衣机常见故障维修
  11. 2019/2/17 Python今日收获
  12. 峰度的意义_李德荃关于偏度与峰度的讲解
  13. 威胁猎人|改机工具在黑灰产中的应用
  14. 提交健康信息服务器拥挤,python hpilo 监控 hp ilo 服务器健康信息
  15. 鹅厂java面试真题汇总
  16. Spring Boot 动态设置数据库密码,密码加密,密码单独处理
  17. 如何启用邮件撤回功能
  18. 计算机网络基础的五个层,计算机网络基础(五) 运输层
  19. 2021-2027中国内部威胁管理(ITM)软件市场现状及未来发展趋势
  20. VK1621是段码LCD液晶显示屏驱动IC,具省电模式,替代市面上1621 LQFP44/48、SSOP48、DICE,最大支持32*4点阵 FAE技术支持

热门文章

  1. 智能小区中嵌入式MP3流媒体网络广播系统设计
  2. Android监听系统广播 和自定义广播遇到的问题
  3. JavaWeb---Tomcat---Servlet
  4. 将shp文件转化为osm文件,并导入到sumo中建立路网
  5. 前端传值,java后端接收
  6. i春秋 WEB GetFlag
  7. 一般物品识别易语言代码
  8. java从入门到精通basic
  9. 三网用户免费开通电话防骚扰
  10. 页高速缓存和页回写(一)