博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

C#面向对象编程全面总结-面试|复习必备

Posted on 2011-12-25 14:19  天轰穿  阅读(2347)  评论(2编辑  收藏  举报
-----------摘抄自《天轰穿.NET趣味编程 之 vs2010轻松学习C#》,转载请勿去除版权-----书未出版,觉得不错留言,我后面逐步贴出来---------

本章的主要对如何设计类做了一个比较全面的讲述。谦虚一点讲,其实更多是在讲述面向对象中的三大要素(封装、继承、多态),而这个过程中第一件是如何设计类。对于类来说,这里再次提一下,类就是现实中事物所有的特性和操作的模板。事物的特征就抽象为类的属性,而事物的动作以及操作这个事物的行为都抽象为类中的方法。

下面将本章所讲的全部知识点做一个罗列和整理(由于本章是整个C#的基础知识,重中之重,所以本章的总结比较多),因为前面讲的时候更多是顾及初学者的思维方式,所以并未将各知识点很干净放在一起。你可以参照下面的知识点罗列再好好的整理下你的学习成果。

1. 类中的数据和函数称为类的成员。

·           数据成员包含:字段、常量和事件。

·           函数成员包括:方法、属性、构造函数和析构函数、运算符以及索引符。

2. 使用new关键字可以建立类的一个实例。

Customer c;       // 创建一个类的对象引用

c=new Deposit() // 创建对象

    或者

Customer c= new Deposited();

3. 静态变量和实例变量

·           带有”static”修饰符声明的变量称为静态变量。

·           不带有”static”修饰符声明的变量称为实例变量。

4. 只读字段和常量字段

·           只读字段可以在构造函数中才赋值。“readonly”是只读字段的关键字。

·           常量字段只能在声明时赋值常量说明前还加const 保留字;

5. 名称空间是.NET避免冲突的一种方式,名称空间可以按逻辑对类进行划分。

6. 名称空间的申明:

Namespace qualified-identifier namespacebody ;

名字空间隐式地使用public修饰符,在使用时不允许出现任何访问修饰符。

7. 名称空间的声明可以采用嵌套的方式和非嵌套的方式。

8. 组件是一个或多个类的集合体,在.NET中组件又被称为程序集(assembly)。

9. 组件的引用:

·           在同一个解决方案内,

·           在不同解决方案里面使用。

10. 封装是把类的内部隐藏起来,以防止外部世界看见的一个面向对象的概念。

11. 通常采用的访问修饰符有五种:

·           public :全公开

·           protected:给当前类的儿孙类公开

·           internal protected:本项目中的儿孙类公开

·           internal:本项目内部公开

·           private:除了本类中,对外完全封闭

12. C#只允许单继承。

13. 继承性的语法:

public class soldgoods:goods

14. 多态性是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。

15. 多态性的作用:

·           增强了操作的透明性

·           可理解性和可扩展性

·           增强了软件的灵活性和重用性。

16. 多态性通过派生类覆写基类中的虚函数型方法来实现。

17. C#支持两类多态性:

·           编译时的多态性

·           运行时的多态性

18. 虚方法是指类中的方法声明前加上virtual修饰符:

public virtual bool Withdraw(…);

19. 重载的特点是(两必须一可以):

·           方法名必须相同

·           参数列表必须不相同

·           返回值类型可以不相同

20. 重写(覆写)的语法:

public override bool Withdraw(…)

        覆写的时候我们使用的是关键字override来完成的

 在覆写的时候要三个要求(三相同):

·           相同的方法名称

·           相同的参数列表

·           相同的返回值类型

21. 类中包含抽象方法,那么类就必须定义为抽象类。

·           抽象方法声明的基本的语法是:

public abstract bool Withdraw();

22. C#中所有的类都直接或间接继承自System.Object类,这使得C#中的类得以单根继承。

23. 接口(interface)用来定义一种程序的协定。

      24. 构造函数是类的一种特殊方法。

·           构造函数的方法名和类名相同;

·           构造函数没有返回类型;

·           构造函数的主要作用是完成对类的对象的初始化工作;

·           在创建一个类的新对象时,系统会自动调用该的构造函数初始化新对象;

·           如果没有显式定义,那么系统提供一个不带任何参数的Public的构造函数。

25. C#的类有两种构造函数:实例构造函数和静态构造函数。

·           不带参数的构造函数: public product()

·           带参数的构造函数:public product(int t,string r)

26. 构造函数可以重构。

27. 构造函数可以相互转换。

28. 属性 

·           自动使用get 标识符进行读;

·           自动使用set 标识符进行写。

问题:

 

1. 举一个实例化方法的例子?

2. 静态变量和实例变量的区别是什么?

3. 只读字段和常量字段的区别是什么?

4. 动手创建一个students类库,将它生成组件。并且分别在不同和相同的解决的方案中引用这个组件。

5. 封装性的访问限制符有些什么?各代表什么意义?

6. 继承性的概念是什么?

7. 如何实现继承?如何访问基类成员?

 

8. 下列对象引用正确的有哪些?

CheckAccount ca = new CheckAccount();

Account acc = new CheckAccount();   ?

CheckAccount ca2 = acc  ?

9. 重载和覆写有什么差别?

10. 如何使用接口?

11C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数的时候,还想保留这个无参数的构造函数,这样我应该写几个构造函数?

12、构造函数有什么用?

13、使用构造函数的重载显示教师输入的学生信息。