background image

.net 理论知识

什么是面向对象
         面向对象 OO = 面向对象的分析 OOA + 面向对象的设计 OOD + 面向对象的编程
OOP;

通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),

它们可以自己完成自己的功能,而不是像 C 那样分成一个个函数;

         现在纯正的 OO 语言主要是 java 和 C#,C++也支持 OO,C 是面向过程的。

阐述面向接口、面向对象、面向方面编程的区别
面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它
的属性及方法。设计中采用了封装、继承、抽象的手法

面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低

面向方面 Aspect-Oriented Programming (AOP)就是大名鼎鼎的 AOP。其实有点象 struts 里的
拦截。

         举例:假设有在一个应用系统中,有一个共享的数据必须被并发同时访问,首先 ,
将这个数据封装在数据对象中,称为 Data Class,同时,将有多个访问类,专门用于在同
一时刻访问这同一个数据对象。

为了完成上述并发访问同一资源的功能,需要引入锁 Lock 的概念,也就是说,某个时刻,
当有一个访问类访问这个数据对象时,这个数据对象必须上锁 Locked,用完后就立即解
锁 unLocked

 

,再供其它访问类访问。

面向对象的思想主要包括什么?
继承:子类拥有父类的所有数据和操作。

封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据
类型内。

 

多态:一个程序中同名的不同方法共存的情况。有两种形式的多态 重载与重写。

抽象类是否可以继承实体类?
抽象类可以继承实体类,但是有个条件,条件是,实体类必须要有明确的构造函数。

当类 T 只声明了私有实例构造函数时,则在 T 的程序文本外部,是否可以从 T 派生出新
的类,是否可以直接创建 T 的任何实例。
不可以,不可以

C#中有没有静态构造函数,如果有是做什么用的?
    有. 静态构造函数用于初始化类。在创建第一个实例或引用任何静态成员之前,将自动