收集的.NET基础资料

来源:互联网 发布:阿里云的域名还要备案? 编辑:程序博客网 时间:2024/05/20 23:33

            1.什么是面向对象:

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

                       通俗的解释是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数;

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

            2.阐述面向接口,面向对象,面向方面编程的区别:

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

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

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

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

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

             3.面向对象的思想主要包括什么?

                        继承:子类拥有父类的所有数据和操作。

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

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

             4.抽象类是否可以继承实体类?

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

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

                        不可以,不可以。