物体导向和类别设计

认识VB.NET

1、 VB.NET与.NET Framework

VB.NET是一种编程语言
.NET Framework是一个平台
VB.NET是基于微软.NET Framework之上的面向对象的编程语言。

2、 .NET Framework组成

这里写图片描述
CLR:Common Language Runtime
BCL:Base Class Library

3、 共同语言执行时期

(1) 提供所有.NET程式语言执行程式时的服务
(2) 提供自动记忆体管理
(3) 提供与COM元件互通的能力
(4) 内建多执行者执行能力

4、 基底类别库

(1) 提供开发各种解决方案时所需要使用的物件
(2) 所有的.NET语言皆使用同一组
(3) 将各种不同解决方案的模型一致化

5、 .NET由许多元件(.DLL)组成

这里写图片描述

6、 部署的选择

(1) 组件可以和.EXE档存放在相同的资料夹下
(2) 将一些安装在和.EXE相同的资料夹下,一些安装在GAC之中
(3) 透过.Config组态设定档部署
(4) 零接触部署

物体导向程式设计

.net程式开发=物件导向程式开发

1、 物件的复制

除非明确复制,否则物件永远不会复制,只是取得物件的参照
明确复制

Private Sub SomeMethod(ByVal E3 As Employee)
        E3.Name=”New Name”
        Dim E4 As Employee
        E4=E3.Clone()
End Sub

只是取得物件的参照

Dim E As Employee
Dim E2 As Employee
E=New Empolyee(“Charlie Lin”)
E2=E
SomeMethod(E)

浅复制(Shallow Copy):只是复制Field
深复制(Deep Copy):会复制所有的子物件

2、 物件的产生

(1)

Dim E As Employee
E=New Employee(“Charlie Lin”)

(2)

Dim E As Employee= New Employee (“Charlie Lin”)

(3)

Dim E As New Employee (“Charlie Lin”)

3、 物件的毁灭

Private Sub SomeMethod()
    Dim E As Employee
    E=New Employee(“Charlie Lin”)
End Sub

.NET使用资源收集器来摧毁物件
资源收集器会周期性自动执行,并收回没有被参考的物件

4、 资源收集器(GC,Garbage Collector)

(1) 资源收集器是个好用的机制
(2) 优点
程式开发人员不需要再做记忆体管理的工作
降低Run-time Error,还有其他的记忆体问题
(3) 有些物件使用很多记忆体时,最好立即将该物件所释放的资源立即释放

类别设计

至少包含Field和Method

1、 Field和Method

Method是用来执行一些动作的程式

2、 构建函式

(1) 初值化:用户端必须提供必需的参数
(2) 多载:Overloading,有弹性,参数的个数,名称有所变化

3、 资料的保护(private)

(1) 可以在修改时进行验证
(2) 可以将资料存放起来
(3) 具有安全性

4、 属性

以方法的方式提供类似Field的存取功能
读取属性Get
设定属性Set

5、程式设计的通则

(1)使用构建函式来进行初值化
(2)制作ToString()方法
(3)透过属性程序保护资料
(4)制作物件的复制

6、公用成员

常量:const
变量、方法:shared
定义一组常数:用列举

Public Class Math
    Public const PI As Doubli=3.14159
    Public Shared Function Pow(x As Double,y As Double) As Double
    ...

(1)全域的资料与程式吗
(2)独立的模组

7、模组

模组=所有成员均为共用的类别
(1)

Public Module Globals
    Public UserName As String
    Public Function Login() As Boolean
    ...
    End Function
End Module 

Module不能New出东西
(2)

Public Class Globals
    Public Shared UserName As String
    Public Shared Function Login() As Boolean
    ...
    End Function
End Class 

8、 命名空间

(1)类别可以使用命名来分类,增加可读性,减少名称冲突
(2)参照完整包含了从最外面算起所有的命名空间
优点:确保物件的型别为正确
缺点:需要写冗长的程式码
(3) 引入命名空间,可以减少程式码的撰写;
引入太多命名空间可能会妨碍程式码的可读性,增加名称冲突的风险,可以建立命名空间的别名

9、 组件

(1)类别在编译时,将被包装成组件
(2).exe档包含了启动点与类别; .dll档中仅包含类别

10、 参考

(1) 使用元件前,必须先加入参考
(2) 加入参考的方式:
a)DLL参考
VS执行起来较有效率,因为只有一个专案
档DLL变更后,必须手动重新编译
b)专案参考
VS将自动编译DLL
VB将在背景编译变更过的元件,这会导致表面暂时停止回应

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值