类、组件和名称空间
内容:
l 类的介绍
l 静态成员与实例成员
l 名称空间
l 组件
类(Classes)
l 类定义了一个“模板”,通过这个“模板”可以生成一个或多个对象
l 类定义了一个对象的“状态”和“行为”
类的成员:
属性:用于描述“状态”,保持“状态”
方法:用于定义行为
实例化(Instantiation)
l 实例化就是创建对象的过程
l 使用new关键字来创建
实例化方式:
l Test mytext = new Test();
l FileStream fs = File.Create(“data.inp”);
没有可访问的构造函数,Create方法返回类实例的一个引用
l 使用反射(Reflection)
对象 vs. 对象引用
对象变量保存的仅仅是对象的一个引用,不是对象本身
如下设计将与OOP相违背
l 全局变量
l 全局方法
l 常量
静态(static)类成员
静态(static)中的成员不属于任何对象
l 它可以通过类名直接访问
l 实例成员必须通过建立对象的引用来访问
当需要全局数据和代码的时候使用static
只读字段与常量字段
l Public static readonly double Price = 3.72
l 需别
n 静态方面
n 初始化方面
n 类型方面
名称空间
名称空间可以按逻辑对类进行划分
l 增强可读性(System.Windows.Forms.Form)
l 减少了类名的冲突(my classes & your classes)
分层结构的名称空间例子
N级的商务应用
完全引用方式
从名称控件的最外层完全引用
l 优势:对象的描述唯一
l 劣势:名称过长
导入(importing)
使用using关键字在文件的顶部导入要使用的名称空间
导入“别名”(alias)
过度使用using将带来问题
l 干扰可读性
l 增加名称冲突的可能性
使用alias是一种折中的方式
Microsoft.NET FxCL
FxCL=Framework Class Library
名称空间 |
用途 |
Microsoft.VisualBasic |
VB6 compatibility |
System |
Core classes,types |
System.Collections |
Data structures |
System.Data |
Database access |
System.Net |
Networking |
System.Windows.Forms |
GUI |
System.XML |
XML processing |
组件(Component)
l A component == 1 or more classes
l 在.NET中,组件被称为程序集(assembly)
l 组件和存放的物理位置有关,跟名称空间无直接关系
引用方式
打开DLL项目
l 可以在一个解决方案中打开DLL项目
直接添加DLL引用
设置DLL引用
l 浏览DLL引用
l VS复制DLL
l 如果DLL更新了,重新复制
总结
l 类是.NET应用程序的基础
l 名称空间可以按逻辑对类进行划分
l 类在物理上应打包在程序集中(Assembly)