您的位置:首页 > 编程语言 > VB

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

2004-06-29 09:15 489 查看
[align=center]VB.NET 对象[/align]
[类]:同种事物的抽象化、模板化。
[实例]:类的一个具体形式。
------------
属性、方法、事件。
[属性]: 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
这种写法,是类的方法重载特性,如果需要改变,只需要更改最后一个方法即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: