我赶忙找到之前检索的种种宝典,试题,本日梳理一下关于NET的基本知识点。
1、面向对象言语的三大特征:封装、继续、多态;
2、接口和类有什么异同:
差别点:
①接口不能直接实例化。
②接口只包含要领或属性的声明,不包含要领的完成。
③接口能够多继续,类只能单继续。
④表达的寄义差别,接口重要定义一种范例,一致挪用要领,也就是范例类,束缚类,类是要领功用的完成和鸠合
雷同点:
①接口、类和组织都能够从多个接口继续。
②接口类似于笼统基类:继续接口的任何非笼统范例都必需完成接口的一切成员。
③接口和类都能够包含事宜、索引器、要领和属性。
3、笼统类和接口有什么异同
①继续:接口支撑多继续;笼统类不能完成多继续。
②表达的观点:接口用于范例,更强调左券,笼统类用于共性,强调父子。笼统类是一类事物的高度聚合,那末关于继续笼统类的子类来讲,关于笼统类来讲,属于"Is A"的关联;而接口是定义行动规 范,强调“Can Do”的关联,因而关于完成接口的子类来讲,相关于接口来讲,是"行动须要依据接口来完成"。
③要领完成:对笼统类中的要领,即能够给出完成部份,也能够不给出;而接口的要领(笼统划定规矩)都不能给出完成部份,接口中要领不能加润饰符。
④子类重写:继续类关于二者所触及要领的完成是差别的。继续类关于笼统类所定义的笼统要领,能够不必重写,也就是说,能够延用笼统类的要领;而关于接口类所定义的要领或许属性来讲,在继续类 中必需重写,给出响应的要领和属性完成。
⑤新增要领的影响:在笼统类中,新增一个要领的话,继续类中能够不必作任何处置惩罚;而关于接口来讲,则须要修正继续类,供应新定义的要领。
⑥接口能够作用于值范例(罗列能够完成接口)和援用范例;笼统类只能作用于援用范例。
⑦接口不能包含字段和已完成的要领,接口只包含要领、属性、索引器、事宜的署名;笼统类能够定义字段、属性、包含有完成的要领。
4、virtual、sealed、override和abstract的区分
①virtual申明虚要领的关键字,申明该要领能够被重写
②sealed申明该类不可被继续
③override重写基类的要领
④abstract申明笼统类和笼统要领的关键字,笼统要领不供应完成,由子类完成,笼统类不可实例化。
5、重载(override)和重写(overload)有什么区分
重载:当类包含两个称号雷同但署名差别(要领名雷同,参数列表不雷同)的要领时发作要领重载。用要领重载来供应在语义上完成雷同而功用差别的要领。(一个类中、多个要领)
重写:在类的继续中运用,经由过程覆写子类要领能够转变父类虚要领的完成。(二个类以上)
6、组织体和类的区分
①组织体是值范例,类是援用范例
②组织体不支撑无惨组织函数,不支撑析构函数,而且不能有protected润饰;
③组织体常用于数据存储,类class多用于行动;
④类class须要用new关键字实例化对象,struct能够不实用new关键字;
⑤类class能够为笼统类,struct不支撑笼统;
7、out和ref的异同点
①ref请求参数在运用之前要显式初始化,out要在要领内部初始化;
②out合适用在须要retrun多个返回值的处所,而ref则用在须要被挪用的要领修正挪用者的援用的时刻。
③ref是有进有出,out是只出不进;(ref能够把参数的数值通报进函数,然则out是要把参数清空,就是说你没法把一个数值从out通报进去的,out进去后,参数的数值为空)
8、值范例和援用范例的区分
①值范例:就是一个包含现实数据的量。即当定义一个值范例的变量时,C#会依据它所声明的范例,以栈体式格局分派一块大小相适应的存储地区给这个变量,随后对这个变量的读或写操纵就直接在这块内存 地区举行;
②援用范例:一个援用范例的变量不存储它们所代表的现实数据,而是存储现实数据的援用。
援用范例分两步建立:首先在栈上建立一个援用变量,然后在堆上建立对象自身,再把这个内存的句柄(也是内存的首地点)赋给援用变量;
9、什么是拆箱和装箱
装箱→值范例转换为援用范例,拆箱→援用范例转换为值范例。
10、装箱和拆箱有什么机能影响?怎样处理呢?
①影响:都触及到内存的分派和对象的建立,有较大的机能影响;
②处理:运用泛型
11、托付是什么?事宜是不是是托付?
①托付:类似于 C或 C++中的函数指针,许可将要领作为参数举行通报;(能够把一个要领作为参数代入另一个要领)
②事宜是特别的托付,事宜内部是基于托付来完成的;
12、组织器Constructor是不是能够被继续?是不是能够被Override?
Constructor不能够被继续,因而不能被重写(Overriding),但能够被重载(Overloading).
13、是不是能够集成String类?
String类是final类所以不能够继续string类。
14、当一个线程进入一个对象的要领后,其他线程是不是能够进入该要领?
不能够,一个对象的要领只能由一个线程接见。
15、用最有用的要领算出2乘以8即是几?
2<<3(左乘,右除)
16、Error和Exception有是区分?
Error示意恢复不是不能够,然则很难题,Exception示意一种现实或完成题目,它示意顺序运转一般不能够发作的。
17、UDP和TCP衔接有和异同?
①TCP是传输掌握协定,供应的是面向衔接的,是牢靠的,字撙节效劳,TCP供应超时重拨,磨练数据功用。
②UDP是用户数据报协定,是一个简朴的面向数据报的传输协定,是不牢靠的衔接。
18、new关键字的用法
①new 运算符 用于建立对象和挪用组织函数。
②new 润饰符 用于向基类成员隐蔽继续成员。
③new 束缚 用于在泛型声明中束缚能够用作范例参数的参数的范例。
19、Using关键字的用法
①援用定名空间;
②为定名空间或范例建立别号;(using + 别号 = 包含细致定名空间信息的详细的范例)
③开释资本(封闭文件流);
20、可接见性级别有哪几种
①pubic 接见不受限定。
②protected 接见仅限于包含类或从包含类派生的范例。
③internal 接见仅限于当前顺序集。
④protected internal 接见仅限于从包含类派生的当前顺序集或范例。
⑤private 接见仅限于包含范例。
21、 一列数的划定规矩以下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法完成。
22、冒泡排序
以上就是C# 一些口试试题的实例教程的细致内容,更多请关注ki4网别的相干文章!