VB.net入门(1):类~构造函数,事件
来源:互联网 发布:建站abc. 电脑 编辑:程序博客网 时间:2024/06/10 09:03
VB.net中的类的构造函数是
[color=#808080]sub New()
end sub[/color]
当然,你也可以加参数。比如Human类的构造函数:
[color=#808080]sub New(Byval Name[/color] as string, byval [color=#000080]Gender[/color] as String, byval [color=#000080]Stature[/color] as integer)
[color=#000080][b]me[/b][/color].Name = [color=#000080]Name[/color] 'me是VB.net中的关键字,表示对象自己,如同java中
me.Gender = [color=#000080]Gender[/color] '的this。java中的super在VB.net中就是MyBase
me.Stature = [color=#000080]Stature[/color]
end sub
这样,我们的老王就是
[color=#808080]dim LaoWang As new Human("老王"[/color], [color=#000080]"男"[/color], [color=#000080]177[/color])
[color=#000000]这样的话,构造Human对象的时候就必须带参数了。我们可以另加一个不带参数的New过程。这里就略过了。
对象不是死的,是活的。对象应该能够主动向外界做出一些表示。这就是事件。比如一个人生了病。这个时候我们就要把他送到医院去。我们先在Human类当中定义一个事件:
public event[/color] FallIll
我们假设某人暴饮暴食,吃出病了。在Eat过程中写上:
[color=#808080]public sub Eat()
raiseevent FallIll [/color][color=#808080]'raiseevent用来引发一个事件[/color]
end sub
外界怎样来接收这个事件呢?用AddHandler。我们要先定义一个过程:
[color=#808080]sub GoToHospital
Console.WriteLine("病人被送到医院去了。")
end sub[/color]
然后将这个过程绑定到一个具体的对象的事件上:
[color=#808080]AddHandler[/color] LaoWang.FallIll, [color=#000080]AddressOf[/color] GoToHospital
这样,一旦执行LaoWang.Eat,就会引发FallIll事件,这时GoToHospital过程就会执行。完整的代码如下:
[color=#808080]imports System[/color]
[color=#808080]public module MyModule
sub Main
dim LaoWang as Human
LaoWang = new Human("老王", "男", 177)
AddHandler LaoWang.FallIll, AddressOf GoToHospital
Console.writeline("{0}, {1}, 身高{2}厘米", _
LaoWang.Name, LaoWang.Gender, LaoWang.Stature)
LaoWang.Eat() '这里引发事件
Console.Read
end sub
sub GoToHospital
Console.WriteLine("病人被送到医院去了。")
end sub
end module[/color]
[color=#808080]public class Human
public Name as String
public Gender as String
public Stature as integer
sub New(Byval Name as string, byval Gender as String, byval Stature as integer)
me.Name = Name
me.Gender = Gender
me.Stature = Stature
end sub
sub New() '不带参数的构造函数
end sub
public event FallIll[/color]
[color=#808080] public sub Eat()
raiseevent FallIll
end sub[/color]
[color=#808080] public sub Sleep()
end sub
public sub SeeADoctor()
end sub
public function Born() as Human
if Gender = "女" then
return new Human("","",50)
else
return nothing
end if
end function
end class
事件还可以带参数。比方我们把FallIll的定义改为:
public event FallIll(Byval Name as String[/color])
然后把Eat的内容改为:
[color=#808080]raiseevent FallIll(me.Name[/color])
接着把GoToHospital的定义改为:
[color=#808080]sub GoToHospital(Byval Name as String[/color])
Console.WriteLine([color=#000080]Name[/color] & "被送到医院去了。")
end sub
这时候运行我们就会看到:“老王被送到医院去了。”
[color=#808080]sub New()
end sub[/color]
当然,你也可以加参数。比如Human类的构造函数:
[color=#808080]sub New(Byval Name[/color] as string, byval [color=#000080]Gender[/color] as String, byval [color=#000080]Stature[/color] as integer)
[color=#000080][b]me[/b][/color].Name = [color=#000080]Name[/color] 'me是VB.net中的关键字,表示对象自己,如同java中
me.Gender = [color=#000080]Gender[/color] '的this。java中的super在VB.net中就是MyBase
me.Stature = [color=#000080]Stature[/color]
end sub
这样,我们的老王就是
[color=#808080]dim LaoWang As new Human("老王"[/color], [color=#000080]"男"[/color], [color=#000080]177[/color])
[color=#000000]这样的话,构造Human对象的时候就必须带参数了。我们可以另加一个不带参数的New过程。这里就略过了。
对象不是死的,是活的。对象应该能够主动向外界做出一些表示。这就是事件。比如一个人生了病。这个时候我们就要把他送到医院去。我们先在Human类当中定义一个事件:
public event[/color] FallIll
我们假设某人暴饮暴食,吃出病了。在Eat过程中写上:
[color=#808080]public sub Eat()
raiseevent FallIll [/color][color=#808080]'raiseevent用来引发一个事件[/color]
end sub
外界怎样来接收这个事件呢?用AddHandler。我们要先定义一个过程:
[color=#808080]sub GoToHospital
Console.WriteLine("病人被送到医院去了。")
end sub[/color]
然后将这个过程绑定到一个具体的对象的事件上:
[color=#808080]AddHandler[/color] LaoWang.FallIll, [color=#000080]AddressOf[/color] GoToHospital
这样,一旦执行LaoWang.Eat,就会引发FallIll事件,这时GoToHospital过程就会执行。完整的代码如下:
[color=#808080]imports System[/color]
[color=#808080]public module MyModule
sub Main
dim LaoWang as Human
LaoWang = new Human("老王", "男", 177)
AddHandler LaoWang.FallIll, AddressOf GoToHospital
Console.writeline("{0}, {1}, 身高{2}厘米", _
LaoWang.Name, LaoWang.Gender, LaoWang.Stature)
LaoWang.Eat() '这里引发事件
Console.Read
end sub
sub GoToHospital
Console.WriteLine("病人被送到医院去了。")
end sub
end module[/color]
[color=#808080]public class Human
public Name as String
public Gender as String
public Stature as integer
sub New(Byval Name as string, byval Gender as String, byval Stature as integer)
me.Name = Name
me.Gender = Gender
me.Stature = Stature
end sub
sub New() '不带参数的构造函数
end sub
public event FallIll[/color]
[color=#808080] public sub Eat()
raiseevent FallIll
end sub[/color]
[color=#808080] public sub Sleep()
end sub
public sub SeeADoctor()
end sub
public function Born() as Human
if Gender = "女" then
return new Human("","",50)
else
return nothing
end if
end function
end class
事件还可以带参数。比方我们把FallIll的定义改为:
public event FallIll(Byval Name as String[/color])
然后把Eat的内容改为:
[color=#808080]raiseevent FallIll(me.Name[/color])
接着把GoToHospital的定义改为:
[color=#808080]sub GoToHospital(Byval Name as String[/color])
Console.WriteLine([color=#000080]Name[/color] & "被送到医院去了。")
end sub
这时候运行我们就会看到:“老王被送到医院去了。”
- VB.net入门(1):类~构造函数,事件
- [转载]VB.net入门(6):类~构造函数,事件
- 构造函数 VB.net
- VB.net 类、对象、字段、属性、方法、构造函数
- VB.NET 与 C# 定义事件,方法,属性,字段,构造函数的不同之处
- VB.NET 构造矩阵类
- vb.net学习入门1
- VB.NET笔记(1)类、属性、函数
- vb.net form New 带参数构造函数
- vb.net 事件相关概念的入门理解
- VB.net学习笔记(十二)继承中的构造、事件、共享方法、共享事件
- vb.net 2005 类事件的使用
- vb.net 中自定义类中的事件
- VB.net入门(2):类~继承
- VB.net多线程入门
- VB.NET入门简介
- VB.NET入门基础
- VB.NET 基础入门
- 谈VC++对象模型
- μC/OSII中的时钟中断技术研究
- 面试java问题 2 (zz)
- 基于uC/OS-II的文件系统设计
- 我读经典系列(一)《我读先秦诸子》易中天教授讲稿的简要摘录
- VB.net入门(1):类~构造函数,事件
- uC/OS应用的简单剖析
- 面试j2ee问题 (zz)
- 互联网,如何拯救世界经济于房地产泡沫中!
- uC/OS II学习时的一个重要函数 OSInit( );
- uC/OS - II 之事件控制块学习笔记
- 样式收藏
- .NET开源项目链接
- 与中断相关的问题