zoukankan      html  css  js  c++  java
  • C#面向对象编程全面总结面试|复习必备

    -----------摘抄自《天轰穿.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、使用构造函数的重载显示教师输入的学生信息。

  • 相关阅读:
    翻译:Razor剖析之第4部分:Razor页面
    学习第二十二天
    jQuery:选择器和事件
    学习第二十天@简单json+上传文件+Ado存储过程
    统计指定时间段内的周未(非周未)天数
    c#动态创建内存模型(笔记)
    cmd命令 任务计划 详解
    BAT教程:第四节(批处理中的变量)
    103个Windows XP运行命令
    BAT教程 :第二节(for命令详解 )
  • 原文地址:https://www.cnblogs.com/thcjp/p/2300985.html
Copyright © 2011-2022 走看看