今天学习目标:简答题
- 面向对象的三大特性
封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承:就是让一个类型的对象拥有另一个类型的对象的属性的方法。
多态:同一个类型的对象在执行同一个方法时,可以表现出多种行为特征。
2、请列出C#中几种循环的方法,并指出他们的不同
while循环:通常用于不确定的循环次数时去使用它
do...while循环:功能上和while基本类似,不同之处它保证了循环至少执行一次
for 循环:主要用于循环次数固定的循环
foreach循环:是一种十分高效的循环,主要用来遍历可枚举类型IEnumerable,比如数组ArrayList、列表List等都可以使用
3、如何声明一个类不能被继承
- C#通过关键字 sealed 可以声明一个类型不能被继承。
public sealed class A
- 静态类
public static class A
4、静态类和静态方法的好处
好处是:在外部调用静态方法时,可以使用"类名.方法名"的方式,无需创建对象。静态类最大的特点就是共享、执行速度快,而且可以防止继承。
5、静态类与普通类的区别?
静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。
在声明一个类时使用static关键字,具有两个方面的意义:首先,它防止程序员写代码来实例化该静态类;其次,它防止在类的内部声明任何实例字段或方法。
6、C#中string 和String 有什么区别
两者本质上没有任何区别,都是System.String,只是书写习惯问题。可以认为,string是System.String的别名而已
7、简述 private、 protected、 public、 internal 修饰符的访问权限。
private:私有成员,在类的内部才可以访问。
protected:保护成员,该类内部和继承类中可以访问。
public:公共成员,完全公开,没有访问限制。
internal:当前程序集内可以访问。
8、简述ADO.NET中的五个主要对象
Connection:主要是开启程序和数据库之间的连接。
Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及调用存在数据库中的存储过程等。
DataAdapter:主要是在数据源以及DataSet之间执行数据传输的工作,它可以透过Command对象下达命令后,并将取得的数据放入DataSet对象中。这个对象是架构在Command对象上,并提供了许多配合DataSet使用的功能。
DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来,
DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,这些数据是存在数据库服务器中的,而不是一次性加载到程序的内存中的,只能(通过游标)读取当前行的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader在读取数据的时候限制了每次只能前进读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。
9、ADO.NET支持哪两种方式来访问关系数据库
连接模式:可通过command(命令)对象执行SQL语句或存储过程。如果执行的结果返回的是一个记录集,则可以使用DataReader(数据读取器)对象读取数据。这里需要注意,DataReader ADO.NET的连接模式只能返回向前的、只读的数据,这是因为DataReader对象的特性决定的。
非连接模式:在数据集方式中,操作数据的基本过程是首先使用数据适配器将数据加载到内存中(数据集对象),在数据集对象中操作数据,然后再使用数据适配器将更改会写到数据库中。
就现在的经验来说,非连接模式大大减少了对连接的占用频率。
10、重载(Overload )和覆写(Override)的区别
概念:重载方法名相同,参数列表不同(参数类型及个数);覆写方法名、返回值类型、参数类型及个数完全相同
范围:重载在一个类中,覆写在继承关系中
限制:重载没有权限要求,覆写的方法的访问权限不能比父类更严格