手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

VB.Net中文教程(8) 对象(Object)基本概念

来源:互联网 作者:西部数码 时间:2008-04-10
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Amount = 500 Height = 2.1
Amount = 250 Height = .5
8. 着手写 VB.net程序

上节之主程序中﹐我们是假设对象 a及 k之内部已有资料了。也许您想问道﹕如何把资料存入对象内呢﹖很简单﹗当您有这种需要时﹐就设计一个函数﹐并加入类别中﹐由它担任资料的输入工作。资料输入对象中﹐也是对象之行为﹐一旦您将此函数加入类别之后﹐对象就能接受讯息﹐并且处理它。以下的实际VB程序﹐让您了解详细的情形了。这程序叫oop01-01:

''''ex01.bas
Imports System.ComponentModel
Imports System.Drawing
Imports System.WinForms
''''-----------------------------------------------------------------
Class Tree
Public varity As String
Public age As Integer
Public height As Double
End Class

Class FruitTree
Inherits Tree

Public month As Integer
Public price As Double
Public Function computeAmount(ByVal weight As Single) As Double
computeAmount = weight * price
End Function
Public Function inquireHeight() As Double
inquireHeight = height
End Function
Public Sub SetPrice(ByVal pr As Double)
price = pr
End Sub
Public Sub SetHeight(ByVal hei As Double)
height = hei
End Sub
End Class

Class Bamboo
Inherits Tree

Public usage As String
End Class
''''-----------------------------------------------
Public Class Form1
Inherits System.WinForms.Form

Public Sub New()
MyBase.New()
Form1 = Me
''''This call is required by the Win Form Designer.
InitializeComponent()
''''TODO: Add any initialization after the InitializeComponent() call
End Sub
''''Form overrides dispose to clean up the component list.
Public Overrides Sub Dispose()
MyBase.Dispose()
components.Dispose()
End Sub
#Region " Windows Form Designer generated code "
.......
#End Region
Protected Sub Form1_Click(ByVal sender As Object,
ByVal e As System.EventArgs)
Dim a As New FruitTree()
Dim k As New FruitTree()
a.SetPrice(20)
a.SetHeight(2.1)
k.SetPrice(10)
k.SetHeight(0.5)
Dim amount As Double
Dim height As Double

amount = a.computeAmount(25)
height = a.inquireHeight()
Messagebox.Show(str(amount) "元 , " str(height) "公尺", "结果")
amount = k.computeAmount(25)
height = k.inquireHeight()
Messagebox.Show(str(amount) "元 , " str(height) "公尺", "结果")
End Sub
End Class

当您把这程序输入计算机﹐并利用VB执行它﹐则计算机输出结果如下﹕

500元, 2.1公尺
250元, .5公尺

请注意﹕这程序中有数个public专用字﹐此刻您不要为它们而伤脑筋﹐此后各章将详细说明之。现在您必须了解之重点是﹕

(1) 如何表明您所设计之类别﹐以及类别之间的父子关系。
例如﹐类别关系是﹕


在程序里﹐从上层类别开始﹐依照由上而下之顺序逐一把各类别叙述清楚。各类别所属之数据项(变量)﹐也得说明清楚。

(2) 如何把函数加入类别中﹐以支持对象之行为﹐使对象能接受讯息、进行运算并输出结果。
例如﹕FruitTree已加入 4 个函数﹐使得Fruit_tree类别之对象能接受并处理 4种讯息。


为了让对象能接受并处理讯息﹐必须把适当的函数加入类别中﹔因之﹐类别内含有两种重要成份──

1.数据项
2.函数

我们称这数据项为类别之「资料成员」(Data Member) ﹔并称这函数为类别之「成员函数」(Member Function)。例如:FruitTree类别含两个资料成员──

成熟月份
价格

FruitTree类别含 4个成员函数──

computeAmount()
inquireHeight()
SetPrice()
SetHeight()

(3) 如何产生对象。
如果您把类别视为一种资料型态(Data Type )﹐那就轻而易举了。想产生两个FruitTree类别之对象﹐就写指令如下﹕

Dim a As New FruitTree()
Dim b As New FruitTree()

能以两种方法了解上述之指令﹕

1. 把FruitTree视为类别﹐则a, k就是对象﹔则此指令就宣告两个「对象」(Object)。
2. 把FruitTtree视为一种资料型态(Data Type) ﹐则 a , k 就是FruitTree型态之变量﹔则此指令宣告两个「变量」(Variable)。

综合上述两种看法﹐您可认为﹕FruitTtree是一种「型态」﹐a 和k 是「变量」﹐而类别型态之变量就是「对象」(Object)。

(4) 对象中含有那些资料。
类别的父子关系﹐决定了对象之「继承」(Inheritance) 关系﹐也决定对象中所含有之数据项。例如﹕FruitTree是Tree之「子类别」(Subclass)﹐则FruitTree类别之对象继承Tree类别内之数据项。所以指令──

Dim a As New FruitTree()

产生了对象 a﹐它含有 FruitTree 类别内之「资料成员」﹐也含有Tree类别内之「资料成员」。



(5) 如何把讯息送给对象。
讯息与对象之关系可表示如下﹕



程序的写法为﹕

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!