.NET程序员面试秘笈
《.NET程序员面试秘笈》由会员分享,可在线阅读,更多相关《.NET程序员面试秘笈(783页珍藏版)》请在课桌文档上搜索。
1、.NET程序员面试秘笈1 .第1章.NET概念题2 .第2章.NET编程语言基础题3 .第3章基类、接口和泛型4 .第4章.NET高级特性5 .第5章WindOWS窗体编程6 .第6章AD0.NET编程7 .第7章S。L查询及LIN。8 .第8章ASP.NET程序开发19 .第9章ASP.NET程序开发210 .第10章WebSerViCe和远程处理11 .第11章算法和趣味题12 .版权第1章NET概念题本章内容包含面向对象程序设计和.NET的基础概念题,由于这部分题目涉及的范围比较广,因此在很多公司的面试题中占了比较大的比重。很多.NET程序员在编写代码时非常熟练,但往往缺乏对基础知识的深
2、刻理解,从而导致面试失败。这类知识是程序设计的基础,如果不加以重视,程序编写就没有创造性,只能学一步,做一步。面向对象编程是当前流行的编程方式,被大多数高级语言支持。NET程序同样是基于面向对象的设计,只有深刻理解面向对象的编程理念,才可以开发出结构良好的、更易维护的.NET程序。说明:本书采用C#语言编写.NET程序示例。面试题1简述面向对象的程序设计思想【考点】面向对象程序设计思想概念的理解,面向对象设计的应用范围,用c#实现面向对象设计方法。【出现频率】【解答】面向对象是程序开发的一种机制,其特征为封装、继承、多态及抽象。以面向对象的方式编写程序时,需要将复杂的项目抽象为多个对象互相协作
3、的模型;然后编写类型的结构,声明或实现类型的成员,即描述对象的特征和行为。在项目中编写不同的类型完成不同的功能,最后在程序中通过类的实例处理实际的问题。说明:此处类型不仅仅指类,还可能包括接口、结构等。【分析】面向对象编程简称为OOP,其“对象”的含义类似于生活中的“物体”。相对于以前的编程方式,面向对象编程更注重于人的思维方式,可极大地提高程序的开发效率。面向对象编程将程序看作多个互相分离的功能模块,各个模块之间分工合作,并且有着极低的耦合度。面向对象编程中最重要的概念是类(即CIaSS),类是描述各个功能模块的模板,而程序中工作的模块实体被称为对象(SPobject)0类和对象的概念好比动
4、物学的分类,猫科动物就是一个类,老虎也是一个类,并且属于猫科动物类,动物园中某只老虎的实体则是一个对象。老虎类拥有猫科动物类的所有特征和行为,但有自己独特的特征和行为。而某只老虎符合老虎类特征描述和行为定义,可能还有部分独特的特征。所以类可以继承另一个类,如老虎类继承了猫科动物类。类是产生对象的一个模板,对象拥有类的一切特征和行为。关于类和对象的基本关系如图Ll所示。面向对象编程的重点是类的设计,面试者应能熟练地编写简单的类并创建对象,展示基本的OOP语法。以图1.1为例,编写图中相应的类,并通过虎类创建一只体重为IoOkg、长度为200Cm的老虎对象。新建一个.CS文件,并命名为O叩Test
5、.cs,编写代码如程序Ll所示。程序1.1老虎对象的创建:OoPTeSLcsOlusingSystem;02classOopTest0304staticvoidMain(Stringargs)05)06ConSOle.WriieLine(请输入老虎对象的体重和长度(逗号分隔的整数):”);07stringinput=Console.ReadLine();08intpos=input.lndexf(,7);09stringW=input.Substring(O,pos);10 string1=input.Substring(pos+1);11 Tigerchinatiger=newTiger(w
6、,1);12 COnSOIe.WriteLine(老虎已经创建完成!);131415161718192021222324252627282930313233王”。34353637ConSoIe.WriteLine(这只老虎的重量是:+Chinaliger.weighl+kg);CoIISOIe.WriteLine(这只老虎的长度是:+ChinatigerJength+ncm);ConSoIe.WriteLine(老虎的特征是:+Tiger.msg);COnSOIe.WriteLine(老虎一般生存在:+Tiger.habitat);COnSole.WriteLine(老虎像猫吗?+Tiger.
7、cat();)classMammal哺乳动物类名称(protectedstaticboolviviparous=true;有胎生的特征protectedstaticboolFeeding=true;有喂养的特征classFelid:Mammal猫科动物类名称(继承于哺乳动物类)protectedstaticboolcatlike=true;类似猫的特征protectedstaticboolsensitivity=true;有敏感的特征classTiger:Felid虎类名称(继承于猫科动物类)(有各种特征internalstaticstringmsg=凶猛、会游泳、会爬树,有漂亮的花纹,被称为
8、“兽中之internalstaticstringhabitat=森林;栖息地在森林internalstringweight;体重internalstringlength;长度3839 this.weight=w;40 IhisJength=1;41 )42 internalstaticboolcat()通过静态方法获取继承的属性43 44 returnTigerxatlike;45 )46 )在命令行下编译OoPTeSLcs后,执行OOPTeSt程序,其效果如图1.2所示。图1.2OoPTeSt的执行结果当用户首先输入了“50,100”,程序创建了一只老虎的对象,并访问了部分数据字段和方法。说
9、明:下文所有当前章的程序示例将在当前章编号的目录下创建并运行,最后进行归档,例如第1章每个示例文件归档到ChOl目录下,而第2章每个示例文件归档到Ch02目录下,依此类推。面试题2用代码描述类和对象的区别【考点】理解类和对象的关系,在实际应用中类和对象的作用。【出现频率】【解答】类(即ClaSS)指一类事物,对象(SPobject)指属于这一类事物的实体。类定义了对象的相关数据和方法,类通过构造函数生成对象,对象实现了类的定义,旦挑有具体的数据。在ChOl目录下新建一个程序文件,并命名为ClaSSobj.cs,编写代码如程序1.2所示。程序1.2类和对象:ClassObj.csOlusingS
10、ystem;02classClassObj0304staticvoidMain(Stringargs)05(06ConSole.WriteLine(请输入动物对象的类别(pig,dog,cat):1,);07stringanimal=Console.ReadLine();读取用户输入到animal变量08ConSoIe.WriteLine(请输入动物对象的品种(如“波斯“):”);09stringIp=Console.ReadLine();读取用户输入到tp变量10 COnSOIe.WriteLine(请输入动物对象的体重:”);11 stringW=Console.ReadLine();读取
11、用户输入到W变量12 switch(animal.ToLowerInvariant()/判断animal变量值13 14 case,pig:15 Pigpg=newPig(tp,w);/根据tp和W的值创建Pig类的对象16 COnSOIe.Write(n你创建了一只”+Pigmame+!);17 COnSoIe.WriteLine(它的品种是:,+pg.type+!”);18 ConSoIe.WriteLine(这只”+Pig.name+”的重量是:+pg.weight+,kg);19202122232425262728293031323334353637383940414243Consol
12、e.WriteLine(Pig.name+”的特征是:+Pig.msg);break;casedog:Dogdg=newDog(tp,w);根据tp和W的值创建Dog类的对象COnSOle.Write(n你创建了一只“+Dog.name+!);ConSoIe.WriteLine(它的品种是:+dg.type+!”);Console.WriteLine(R+Dog.name+”的重量是:+dg.weight+kg);Console.WriteLine(Dog.name+”的特征是:+Dog.msg);break;default:Catct=newCat(tp,w);/根据tp和W的值创建Cat类
13、的对象COnSOle.Write(n你创建了一只+Cat.name+!);COnSOle.WriteLine(它的品种是:+ct.type+“!);COnSoIe.WriteLine(这只+Cat.name+”的重量是:+ct.weight+kgn);Console.WriteLine(Cat.name+”的特征是:+Cat.msg);break;)classPig猪类名称internalstaticstringname=卜猪;有各种特征internalstaticstringmsg=肥胖、迟钝44454647484950515253545556575859606162636465666768
14、internalsiringweight;体重internalPig(stringlp,siringw)/构造函数,接给品种和体重赋值直this.type=tp;this.weight=w;I)classDog狗类名称internalstaticstringname=小狗;internalstaticstringmsg=属于犬科动物,是人类的好朋友;有各种特征internalstringtype;品种internalstringweight;体重internalDog(stringtp,stringw)构造函数,直接给品种和体重赋值(this.type=tp;this.weight=w;Icl
15、assCat猫类名称品种internalstaticstringname=小猫”;internalstaticstringmsg=安静、敏感;有各种特征internalstringtype;69 internalCat(stringtp,stringw)构造函数,直接给品种和体重赋值70 71 this.type=tp;72 this.weight=w;73 )74 )例子比较简单,但可以充分说明类和对象的关系,3个动物类的描述如图1.3所示。PigDogCat+name:SlrinR=小辨name:Strjng=小啊name:string=小猫+msff:Strina=肥胖、迟钝+ms:st
16、rinu=届十犬科动物,是人类的好朋友+mstt:Strinu=安怖、敏感+type:string+weight:string+type:string+weight:string+type:string+weight:stringPig(int:string,inw:string)Dogfint:string,inW:string)Cat(intp:string,inW:string)图1.3类和对象程序的执行结果图1.3为3个类的定义,在主程序中用户输入动物的类别、品种和体重数据后,即根据以上类为模板创建了一只小动物对象,并输出其数据。在命令行下编译CIaSSObj.cs后,执行ClaSSc
17、)bj程序,其效果如图1.4所示。【分析】简单来说,类是用于描述对象的特征、状态和行为的模板,是抽象的概念。例如虎类可以用于描述所有老虎个体的共同特征及行为,但是虎类不能指定某一只老虎的个体。而对象指拥有具体特征、状态和行为的实体,例如某只老虎就是虎类的一个对象,它遵从类所描述的一切特征和行为。-ll l-3JK管理员:VisualStudio命令提示(2010)XCh01,cscClaSSObj.cs|1icrosoftUisualCtt2010编译器4.0.30319.1版版权所有CMicrosoftCorporation0保留所有权利。?:ch01CIassObjJ清榆人动物对象的类别(
18、Pg,dog.cat),dog舞人动物对象的品种(如“波斯”)麓入动物对象的体重:20倏创建了三只小卸它的品种是:金毛!位只不奥的重量息20kg“谓的蒋征是:属于犬科动物,是人类的好朋友F:ch01图1.4类和对象程序的执行结果面试题3描述PriVate、protectedintemal和PiIbliC修饰符的作用【考点】理解访问权限存在的意义,各种访问权限的作用,在代码中灵活应用访问权限。【出现频率】【解答】1.PriVate修饰符private修饰符用于设置类或类成员的访问权限仅为所属类的内部,private也被称为私有修饰符。某些时候需要访问私有类成员时,可通过get和Set访问器读取或
19、修改。本例通过对类的私有成员及私有类的访问,展示PriVate修饰符的保护作用。在ChOl目录下新建一个程序文件,并命名为ModPriVate.cs,编写代码如程序1.3所不。程序1.3PriVate修饰符示例:ModPrivate.esOlusingSystem;0203classModPrivate0405staticvoidMain(Stringargs)Dogdg=newDog(可卡);Console.WriteLine(一只小狗创建成功!);Console.WriteLine(iH,+dg.name+”的品种是:+dg.type);由于参数类型为字符串的构造函数是私有的,这里不能直接
20、创建实例对象/Tigertg=newTiger(“华南虎”);由于Tiger类所嵌套的ZOOTiger类是私有类,所以无法直接访问/TigenZooTigertz=newTiger.ZooTiger();Tigertg=newTiger(true);参数类型为布尔型的构造函数可创建Tiger类的对象COnSOle.WriteLineCn一只老虎创建成功!);COnSOIe.WriteLine(这只+tg.name+”的品种是华南虎吗?+tg.ischinatiger);classDog狗类名称internalstringname=小狗;06070809101112131415161718192
21、021222324252627282930private string _type;品种internal Dog(string tp)构造函数,直接给品种赋值this._type=tp;internal string type/type变量,gel访问器获取私有成员ype的值getreturnthis._type;31323334353637383940414243444546474849505152535455classTiger虎类名称internalstringname=老虎;privatestring_type;品种privateboolJschinatiger;/是否为华南虎priv
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NET 程序员 面试 秘笈

链接地址:https://www.desk33.com/p-675614.html