VB.NET笔记(1)类、属性、函数

来源:互联网 发布:c语言中const的作用 编辑:程序博客网 时间:2024/05/21 09:30
VB.NET 对象

[类]:同种事物的抽象化、模板化。
[实例]:类的一个具体形式。
------------
属性、方法、事件。
[属性]: Properties 描述类的某特征的名词,如:牛(一个类) --> 牛眼睛的颜色 & 牛的耳朵轮廓 ... ...
[方法]: Methods 描述类的自身所具有的功能/行为的动作,动词。如:牛(一个类) --> 产牛奶 & 鸣叫 ... ...
[事件]: Event 描述类的实例受到外界的作用而响应的动作,动词。如:牛(一个类) --> 挤牛奶(被动产奶) & 牛需要休息(因为时间作用使牛疲劳) ... ...
-----------
创建类
下面是一个完整的例子。
<%@ Page Language="VB" %>
<script runat="server">
Public Class Person            '类名: Person
 Public Sub New()              '初始化类
 End Sub
'声明类内部变量的数据类型
 Private _Name As String
 Private _Age As Integer
 Private _EyeColor As String
'定义 Name 属性
  Public Property Name As String
   Get
    Return _Name
   End Get
   Set (ByVal Value As String)
    _Name = Value
   End Set
  End Property
'定义 Age 属性
  Public Property Age As Integer
   Get
    Return _Age
   End Get
   Set (ByVal Value As Integer)
    _Age = Value
   End Set
  End Property
'定义 EyeColor 属性
  Public Property EyeColor As String
   Get
    Return _EyeColor
   End Get
   Set (ByVal Value As String)
    _EyeColor = Value
   End Set
  End Property
End Class
'结束类定义
'页面加载
Sub Page_Load(Sender As Object, E As EventArgs)
 Dim myPerson As New Person()
'首先,要初始化类属性值
 myPerson.Name = "Susan"
 myPerson.Age = "25"
 myPerson.EyeColor = "Blue"
 Name.Text = myPerson.Name
 Age.Text = myPerson.Age
 EyeColor.Text = myPerson.EyeColor
End Sub
</script>
<html>
<head>
</head>
<body>
<form runat="server">
Name: <asp:Label runat="server" id="Name" /><br />
Age: <asp:Label runat="server" id="Age" /><br />
Eye Color: <asp:Label runat="server" id="EyeColor" />
</form>
</body>
</html>
----------

首先:定一个类(CLASS): Public Class Person 名称为 Person
然后是:
  Public Sub New()
  End Sub
这里是调用构造函数 New() ,进行类的初始化。这一步是必须的。细节在后面。
-----------
[定义属性]:
基本书写格式如下:
Public Property Name As String
 Get
  Return _Name
 End Get
 Set(Byval Value As String)
  _Name = Value
 End Get
End Property
属性一般都是能够被外界访问到的,如果外界无法得到属性的值,那么这样的属性没有必要存在。因此,这里采用 Public 修饰符;String 是这里 Name 属性名称的具体数据类型。我们看到,这里有 Get 和 Set 两个语句,Get 语句是外界如何得到参数的“取值”过程,Set 是在程序中设置属性值的“设置”过程。
在 Set 语句中,还可以写入更多的内容。如:年龄属性设置----如果年龄不足1岁,将按1岁计算;否则,按实际年龄计算:
Public Property Age As Integer
 Get
  Return _Age
 End Get
 Set(Byval Value As Integer)
  If Value < 1 Then
   _Age = 1
  Else
   _Age = Value
  End If
 End Set
End Property
属性还有只读 ( ReadOnly ) 和 只写 ( WriteOnly ) 两种类型
只读类型: 例如----牛的眼睛颜色这一属性,天生的就不能更改,只能读取
Public ReadOnly Property EyeColor As String
 Get
  Return _EyeColor
 End Get
End Property
上述是只读属性的完整写法,没有 Set 语句,那如何初始化属性值呢?
前面讲到的类的初始化函数 New() ,因此可以在
Public Sub New()
 _Eyecolor = "Blue"
End Sub
设置只读属性的初始值。
只写属性: 目前我还没有一个很合适的例子
Public WriteOnly Property EyeColor As String
 Set(Byval Value As String)
  _Eyecolor = Value
 End Set
End Property
===========
方法
类中的函数,就是方法----函数必须有一个且只有一个返回值,函数可以声明参数,也可以不声明参数。函数的返回值类型必须在函数定义的开始就给定。
函数的定义:
Function Myfunction(Myparam As String) As Integer
 Dim Myresult
 ...
 Return Myresult
End Function
方法:
在同一个类中,可以定义完全两个名称相同,参数不同的函数。如:
Public Function Walk() As String
 Return _Name & ": Forwards."
End Function
Public Function Walk(Dirs As String) As String
 If Dirs = " Back " Then
  Return _Name & ": Backwards."
 Else
  Return _Name & ": Forwards."
 End If
End Function
Public Function Walk(Dirs As Integer) As String
 If Dirs > 0 Then
  Return _Name & ": Backwards."
 Else
  Return _Name & ": Forwards."
 End If
End Function
上述三个同名函数,其实,可以完全满足不同习惯的编程人员:walk() 是默认方法,walk(参数) 的两种写法可以满足有些人喜欢使用字符串作方法的参数,有些人喜欢数字化方法参数... ...
上述三个同名函数,可以优化为下面写法:
Public Function Walk() As String
 Return Walk(1)
End Function
Public Function Walk(Dirs As String) As String
 If Dirs = " Back " Then
  Return Walk(-1)
 Else
  Return Walk(1)
 End If
End Function
Public Function Walk(Dirs As Integer) As String
 If Dirs > 0 Then
  Return _Name & ": Backwards."
 Else
  Return _Name & ": Forwards."
 End If
End Function
这种写法,是类的方法重载特性,如果需要改变,只需要更改最后一个方法即可。
原创粉丝点击