VB.net入门(5):类~属性和方法

类别:.NET开发 点击:0 评论:0 推荐:

类,就是种类的类。这里以“人”为例简单介绍一下VB.net里面类是怎么写的。

定义一个类是这样的:
public class Human
end class

类是有成员的。比如一个人的姓名、性别、身高都是这个人的成员。
public class Human
    public Name as String
    public Gender as String
    public Stature as integer   '我们假设身高以厘米为单位
end class


类是有方法的。比如一个人要吃东西,要睡觉,生病了还要看医生。
public class Human
    public Name as String
    public Gender as String
    public Stature as integer
 
    public sub Eat()
    end sub
 
    public sub Sleep()
    end sub
 
    public sub SeeADoctor()
    end sub
end class


方法有时候需要返回东西。比如生小孩:
public function Born() as Human
    return new Human
end function

嗯……不对,应该这样写:
public function Born() as Human
    if Gender = "女" then
        return new Human
    else
        return nothing      'VB.net中的nothing就像C++中的NULL,表示什么都没有。
    end if
end function


只有女人才能生小孩嘛。
到这里你可能想要一个完整的代码例子。代码如下:
imports System

public module MyModule
    sub Main
        dim LaoWang as Human
        LaoWang = new Human
        LaoWang.Name = "老王"
        LaoWang.Gender = "男"
        LaoWang.Stature = 177
        Console.writeline("{0}, {1}, 身高{2}厘米", _
                          LaoWang.Name, LaoWang.Gender, LaoWang.Stature)
        dim XiaoWang as Human = LaoWang.Born()
        Console.Read
    end sub
end module

public class Human          '这里是Human类的定义
    public Name as String
    public Gender as String
    public Stature as integer
 
    public sub Eat()
    end sub
 
    public sub Sleep()
    end sub
 
    public sub SeeADoctor()
    end sub
   
    public function Born() as Human
        if Gender = "女" then
            return new Human
        else
            return nothing
        end if
    end function
end class

在这里,LaoWang是一个Human对象的引用,这个Human对象的Name成员 便是“老王”。这里所谓引用,和工程中的引用不一样,这个是变量的引用。跟C中的指针有些类似,你甚至可以说,LaoWang是一个指向某个Human对象的变量,这个对象的Name成员便是“老王”

我们又定义了一个变量叫XiaoWang(小王?)。但是LaoWang是男的,LaoWang.Born返回的是Nothing。也就是说,XiaoWang什么都不是。虽然存在XiaoWang这个变量,但是这个变量不指向任何对象。就好比我现在在说老王、小王什么的,但我身边并没有什么人叫做老王小王。如果我喊一声“老王,吃饭了!”,没有人会应。这个时候想取得XiaoWang的成员的值,只会出现错误。

本文地址:http://com.8s8s.com/it/it43097.htm