您的位置:首页 > 编程语言 > C#

Modern C#系列课程(2):类, 组和名称空间

2008-06-02 22:33 197 查看
================================================================
类的介绍
================================================================
1.为什么使用 object-oriented programming?
---封装性、继承和多态
---现实世界中就是对象无处不在

2.类(Classes)
---类定义了一个“模板”,通过这个“模板”可以生成一个或多个对象
---类定义了一个对象的“状态”和“行为”

3.类的成员
在最简单的设计中,我们定义两种类的成员:
---属性:用于描述“状态”,保持“状态”
---方法:用于定义行为

4.实例化(Instantiation)
---实例化就是创建对象的过程
---使用new关键字来创建

补充:实例化的几种方式【重点】
1.Test mytest = new Test();
2.FileStream fs = File.Create(“data.inp”);
---没有可访问的构造函数,Create方法返回类实例的一个引用。
---常见的是sington模式。
3.使用反射(Reflection)
public class ReflectTest
{
public ReflectTest() { }
}
//Get the Type object for the ReflectTest.class
Type t = Type.GetType(“ReflectTest”)
//Get the parameterless constructor for the class
ConstructorInfo ctor = t.GetConstructor(System.Type.EmptyTypes);
//Invoke the constructor with a ‘null’ parameter
ReflectTest test = (ReflectTest)
ctor.Invoke(null);

================================================================
静态成员与实例成员
================================================================
1.对象 vs对象引用
对象变量保存的仅仅是对象的一个引用,不是对象本身!
这点是非常重要的!有助于理解.NET

2.何时OOP不再是OOP?
有些设计是和OOP相违背的
---全局变量
---全局方法
---常量

3.静态(static)类成员
静态(static)中的成员不属于任何对象
---它可以通过类名直接访问
---实例成员必须通过建立对象的引用来访问
---const申明的其实相当于静态成员,常量是隐式的静态成员;也可以用static声明。
---所有类的实例共享这个类的静态成员变量。

4.何时来使用static
---常量
---类实例的公共变量
---static可以修饰类,这样类的所有方法和字段都是static的,这也可以减少编写的代码,不需要重复写static。

补充:只读字段与常量字段【重点】
public static readonly double Price = 3.72
只读字段只能一次赋值,赋值之后不能改变,但是赋值的机会很多。
区别:
---静态方面 //只读字段: ;常量字段:
---初始化方面 //只读字段:声明,类的构造函数,或者根本就没有赋值 ;常量字段:声明的时候
---类型方面 //只读字段: 值类型和引用类型;常量字段:值类型

================================================================
名称空间
================================================================
1.名称空间可以按逻辑对类进行划分
---增强可读性( System.Windows.Forms.Form)
---减少了类名的冲突(my classes &your classes)//如不同人开发相同的类

2.完全引用方式
从名称空间的最外层完全引用
---优势 //唯一的应用
---劣势 //重复代码多TeamX.BusinessTier.Customer c;
c = new TeamX.BusinessTier.Customer(...);

3.导入(importing)
你可以导入名称空间
---使用using关键字在文件的顶部导入要使用的名称空间using TeamX.BusinessTier;
Customer c;
c = new Customer(...);
问题:如果引入命名空间中存在相同的类时,全局方式就不能正常,为此我们可以使用折中方案。

4.导入“别名”(alias)
过度使用using将带来问题
---干扰可读性 //不知道来源
---增加名称冲突的可能性
使用alias是一种折中的方式,可以减少代码编写,也可以避免命名控件中类的重复。举例如下:
using BT = TeamX.BusinessTier;
BT.Customer c;
c = new BT.Customer(...);

================================================================
组件(assembly)
================================================================
1.组件介绍
---A component == 1 or more classes
---在.NET中,组件被称为程序集(assembly)
---【组件和存放的物理位置有关,跟名称空间无直接关系】---和java中的package是不同的,它没有像java那样类的文件夹层次结构。

2.引用方式
你有两种选择
1) 打开DLL项目
2) 直接引用DLL

3.设置DLL引用
---浏览 DLL 引用【.NET选项卡里面,选择"Browre..."】
---VS 复制 DLL
---如果DLL更新了,重新复制

优势?
---解决方案中项目量减少,VS运行较快
劣势?
---你必须手工编译每个DLL项目
---调试较麻烦,因为它们不在一个解决方案中…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐