.Net面向对象程序设计

来源:互联网 发布:网络公司员工合同 编辑:程序博客网 时间:2024/05/17 23:51

1、简述面向对象的设计思想
面向对象的特质为封装、继承、多态、抽象等。用面向对象编写程序时,
首先将复杂的项目抽象为多个互相协作的对象模型。
然后描述对象的特征和行为(即类的属性和方法),完成不同的功能
最后通过类的事例处理实际问题
2、类和对象的区别
类用于描述对象的特征状态和行为的模板,对象是类的一个实体。
3、描述private、protected、internal和public修饰符的作用
private设置类或类的成员的访问权限为所属类的内部
protected设置类或类的成员的访问权限为所属类及子类的内部
internal设置类或类的成员的访问权限为同一程序集的内部
public设置类或类的成员的访问权限为公共,对代码的访问没有限制
4、描述sealed修饰符的使用
1)、修饰类时,该类无法被继承,称为密封类
2)、修饰类的成员时,子类无法重写该成员。
sealed修饰的成员肯定是基类中相应的虚成员,必须和override一起使用。通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构混乱

如:

5、简述静态类和静态成员
静态类中的成员都必须是静态的。静态类无构造方法,并且是密封类无法被继承。
静态成员访问时只能通过类名来访问,不能通过对象访问(和JAVA有区别),this也无法访问静态成员。
6、构造函数的作用
创建类的实例,并对实例进行初始化操作。
7、方法的重载和重写的区别
重载是在同一个类内部同一个函数的几种形式,重写是子类重写父类函数
重载:方法名相同,参数个数或参数类型不同,或参数相同但返回值类型不同。
重写:子类中的方法名,参数,返回值类型,异常都与父类中的方法一致。在子类中将父类的方法进行扩展或改写。静态方法不能被重写。
8、描述接口的作用
充当类的功能界面,接口里的成员属于抽象描述,必须通过类的实现才能使用。如:某个项目有多个模块组成,每个模块由一个开发者完成,开发者只需编写完模块功能实现后,留下的接口供其他人使用。其他人在程序中,使用接口时,只需知道接口的功能,不了解如何实现。
当功能模块无法满足需要或功能模块的需求变更时,程序员只需将该功能模块的实现代码进行修改和扩充,而其他调用接口的程序无须改动。接口的这种应用模式成为brige模式(即意图和实现分离
接口反映了面向对象的多态特征,即通过相同方法得到不同实现。接口也反映了面向对象的封装特征,使用者可以不清楚接口成员的实现细节。
注意:因为接口成员默认的访问权限是public,所以在实现接口时,类的成员必须为public,且方法名和参数必须一致。

结果:

9、描述抽象类
用abstract修饰的类。抽象类可以包含实现的成员。未实现的成员隐含的是virtual属性,子类实现时必须用override关键字。
例:练习抽象类的使用方法

 

10、this和base有什么作用?
 this引用当前对象,base调用父类成员。
this使用方法:
         构造方法():this(参数)
          {
          }
base使用方法:
          base.基类中的方法名()
          构造方法():base(参数)
          {
          }

例:练习this,base的使用方式:

结果如下:

11、说明索引器的作用
索引器可以使客户程序很方便地访问类中的集合或数组,类似通过索引访问数组,并且索引器向客户程序隐藏了内部的数据结构。类似于属性,访问类或结构的集合或数组时,可以用索引器实现,索引器用this关键字声明,声明方法如下:
数据类型 this[参数列表]
{
        get
        {
                以参数为索引返回集合或数组数据
        }
        set
        {
                  分配值到参数索引的元素
        }
}
例:自己建立一个数组

结果如下:

原创粉丝点击