【php精品源码栏目提醒】:网学会员,鉴于大家对php精品源码十分关注,论文会员在此为大家搜集整理了“.NET_面试题与答案 - 招聘面试”一文,供大家参考学习!
复习题1. 什么是类 什么是结构体 二者有什么区别 相同点是什么 你经常使用类还是结构体为什么答案:类:是一种用户自定义的数据类型,其中定义了数据成员和操作成员。
是对共同属性和行为的抽象。
结构体:也是用户自定义的数据类型,其中也定义了数据成员和操作成员。
是对属性和行为的抽象。
区别: 1.类是存储在托管椎(heap)上的引用类型(大量数据,节省空间,引用赋值快) , 而结构体是存储在栈(stack)上的值类型(小量数据,可定义高性能,但浪费空间)。
2.类支持类继承,结构不支持类继承(但其派生于System.ValueType,可继承接口)。
3.类可以定义无参默认构造函数初始化数据成员,但结构不允许,应为其总是提供无参默认构造函数申请空间? 4.类的成员的默认访问级别为private,而结构为public 相同点:1.都是用户自定义的数据类型,都是共同属性和行为的抽象(容器) 经常使用类,因为处理大量的数据效率高,还有类有继承和多态的性质而结构体没有2..怎样理解静态变量和静态方法? 静态构造函数的作用是什么答案:静态变量:属于类,不属于对象,静态变量是类类型共有的变量,存储在代码区中。
静态方法:属于类,不属于对象,不用创建类的实例,直接使用类的方法 静态构造函数是初始化静态数据成员,没有参数,在系统第一次使用类时自动调用,既在类被加载之后调用3.值类型与引用类型有什么区别?答案:值类型:其定义的变量,存储在栈区,储存数据本身。
引用类型:其定义的变量,数据存储在托管堆中,其地址储存在栈中。
所有内置对象,除了object和string 以外,都是值类型,所有用户定义类型,除了结构体都是引用类型;8中整型3种浮点型2种2种引用类型 15 类型 大小(字节) .net 类型 说明 无符号 八 byte 1 System.Byte (0-255) 有符号 sbyte 1 System.Sbyte (-128~127) 有符号 种 (short) short 2 System.Int16 (-32768~ 32767) 无符号 ushort 2 System.Unt16 (short) 0~65535 整 int 4 System.Int32 uint 4 System.Uint32 long 8 System.Int64 型 ulong 8 System.Uint64 float 4 System.Single 三 种 double 8 System.Double 浮 点 System.Decima decimal 8 型 l bool 1 System.Boolea True or 两 n false 种 char 2 System.Char Unicode 字 字符 符 string 4 System.String 两 中 object 4 System.Object 引 用 2 种自定义值类型:enum 枚举和 struct(结构) 3 种自定义引用类型:class interface delegate3b.常见转义字符:’单引号”双引号 反斜杠0 空a 警铃b 回退f 换页n 换行r 回车t 水平制表v 垂直制表4.override 与重载有什么区别?答案:override是在继承关系中,子类可以重写父类的虚方法。
overload重载是同一个类中,方法名相同而参数签名不同。
5.你在什么情况下会用到虚方法?它与接口有什么不同?答案:当其子类需要重写父类的方法是,会用虚方法。
接口是一个类型,而虚方法只是一个方法。
接口定义了方法的签名,没有定义实现。
虚方法:不但有方法声明,还要有方法体。
Virtual 和多态有关6.什么是抽象方法 什么是抽象类答案:抽象方法是不能具体实现的方法,只有方法签名,没有方法体,前面有abstract修饰。
抽象类是:有abstract修饰的类既抽象类,抽象类不能实例化。
抽象类的用途是提供多个派生类可共享的基类的公共定义 有共同的行为和属性用抽象类 只有共同的行为用接口抽象类和抽象方法:抽象类不能实例化。
抽象类的用途是提供多个派生类可共享的基类的公共定义。
抽象类也可以定义抽象方法。
抽象方法没有实现 抽象类的派生类必须实现所有抽象方法。
public abstract class A public abstract void DoWorkint i当抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法。
类 F 上的 DoWork 无法调用类 D 上的 DoWork。
在此情况下,抽象类可以强制派生类为虚方法提供新的方法实现。
public class D public virtual void DoWorkint i // Original implementation. public abstract class E : D public abstract override void DoWorkint i //强制派生类为虚方法提供新的方法实现public class F : E public override void DoWorkint i // New implementation. 密封类和类成员:密封类不能用作基类,也不能是抽象类。
密封类主要用于防止派生。
由于密封类从不用作基类,所以有些运行时优化可以使对密封类成员的调用略快。
public sealed class D // Class members here.在对基类的虚成员进行重写的派生类上的类成员、方法、字段、属性或事件可以将该成员声明为密封成员。
在用于以后的派生类时,这将取消成员的虚效果。
方法是在类成员声明中将 sealed 关键字置于 override 关键字的前面。
例如:public class D : C public sealed override void DoWork //取消成员的虚效果7. 怎样理解类、抽象类、和接口之间的异同?答案:抽象程度不同 类:对对象属性和行为的抽象,以及重点考察方法的具体实现过程 抽象类:不能实例化,其中的抽象方法(只生活在抽象类中)没有方法体 接口:最高程度抽象,忽略对象,只考察行为概念,不考虑行为的具体实现,用于定义规范,具体方法由其他类实现。
7b. 类:一般类,静态类,抽象类,密封类 方法:一般方法,静态方法,虚方法,抽象方法(只在抽象类中),密封方法(只在密封类中) 一般类:public class AA 可以有:一般方法,静态方法,虚方法 不能有:抽象方法,密封方法 静态类:public static class AA //不能实例化,不能被继承 只能有: 静态方法 不能有:一般方法,抽象方法,密封方法 抽象类:public abstract class //不能实例化用来派生 可以有:一般方法,静态方法,虚方法,抽象方法 密封类:public sealed class //用于防止派生 可以有:一般方法,静态方法8.c是一种纯粹面向对象的语言。
面向对象语言具有什么特点?答案:抽象(封装)继承,多态9.类和类之间有哪些关系?答案:类与类之间的关系有:继承,多态,聚合,组合,关联10.的作用是什么?答案:1.是C中的保留字作为自定变量名使用。
例如: int 可以定义为变量名 2.使字符串内部所有的转义序列无效11.什么是序列化? 为什么要序列化?(什么时候必须作序列化?)如何实现序列化?答案:序列化:把对象数据成员转化为字节流,只序列化数据成员,不序列化方法 why:为了把对象保存到存储介质或者在网络上传输,做序列化! 如何实现:1.默认的序列化方法:类的定义前加属性:Serializable,编译器会将序列化方法添加到类中 ,还需要加上属性 2.自定义序列化方法:接口:ISerilizable(GetOjbectData 方法) 序列化器:BinaryFormatter ,SoapFormatter12.阐述C中的访问修饰符。
类和类的成员的访问修饰符分别有哪些?权限是什么?答案:C中的访问修饰符是访问类成员的一种权限,只有具有想对的权限才能访问类的成员 类内部 类外部(非继承) 类外部(继承)public 可以 可以 可以protected 可以 不可以 可以private 可以 不可以 不可以internal 只有在同一程序集的文件中,成员才是可访问的13.什么是操作符重载?为什么要操作符重载?如何实现操作符重载?答案:操作符重载:在不改变操作
上一篇:
Octopus自动化工具设计
下一篇:
计算机毕业论文答辩2014年