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