C#考前复习知识点

MD · 12.1 KB · 2026-06-30

📚 C# 面向对象程序设计 – 考前复习知识点

来源:课堂录音转文字整理 | 考试时间:7号下午2:00


📋 目录

  1. 考试基本信息
  2. 面向对象三大基石
  3. 访问修饰符
  4. 类的核心成员
  5. 创建类和对象
  6. 构造函数
  7. 析构函数
  8. 方法重载
  9. 继承
  10. 多态
  11. 异常处理
  12. 文件操作
  13. 考试题型与答题技巧
  14. 重点章节总结
  15. 老师最后叮嘱

一、考试基本信息

项目 内容
考试时间 7号,下午第一场 2:00
考试范围 第2章(基础语法)、第3章(字符串和类)、第4章(类和对象)、第5章(继承和多态)
核心章节 第2章第4章 是最基础的,考题中大量出现
大题结构 ① 基础语法题 ② 数组题 ③ 编程题(30分,分值最大)
小题类型 选择题、判断题、程序填空题、程序改错题
复习资料 复习 PPT 已发到在线网络平台,可下载查看

二、面向对象三大基石(三大基本特征)

考试必记封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)

1️⃣ 封装(Encapsulation)

  • 狭义理解:定义一个类,把行为和属性包装起来,只对外提供接口,隐藏内部实现。
  • 核心操作:创建类 → 在类中添加字段(属性)和方法。

2️⃣ 继承(Inheritance)

  • 语法:使用冒号 : 表示继承关系。
  • 子类可以访问父类中被 protected 修饰的成员。

3️⃣ 多态(Polymorphism)

  • 前提:必须基于继承关系(两个类之间有继承关系才能实现多态)。
  • 实现方式
  • 虚方法(virtual)+ 重写(override)
  • 抽象类 + 抽象方法的重写
  • 接口(Interface)
  • 多态能够提高程序的扩展性

三、访问修饰符(Access Modifiers)⭐ 必考

访问修饰符 访问范围 说明
public 最大范围 所有类都可以访问
private 最小范围 仅本类内部可以访问
protected 本类 + 子类 涉及继承关系时使用
internal 同一程序集内 考试较少涉及

⚠️ 答题技巧:如果不确定访问修饰符怎么写,建议不写(默认)。写错了反而不易得分。

语法位置:访问修饰符写在最前面,后面跟数据类型和字段名。

csharp public double length; // 访问修饰符 + 数据类型 + 字段名


四、类(Class)的核心成员

一个类包含三大核心成员

1. 字段(Field)

  • 类的变量,直接声明。

不同数据类型的默认值(教材81页表4.1):

数据类型 默认值
整数(int) 0
浮点数(double/float) 0.0
字符串(string) null
字符(char) '\0'(空字符)
布尔(bool) false

2. 属性(Property)

  • 类似字段,但可以控制读写权限(通过 getset 访问器)。
private double area;       // 字段(backing field)
public double Area         // 属性
{
    get { return area; }   // get:返回字段值
    set { area = value; }  // set:传值赋值给字段
}
访问器 作用
get 返回一个值(return
set 传值赋值给字段(通过 value 关键字)

3. 方法(Method)

  • 定义格式:[访问修饰符] 返回类型 方法名(参数列表) { 方法体 }

访问类的成员

  • 使用点运算符(.
Shape s1 = new Shape();  // 创建对象
s1.length = 1.0;         // 对象名.字段名 = 值

五、如何创建类和对象 ⭐ 核心考点

创建类

class Shape
{
    // 字段
    // 属性
    // 方法
}

创建对象

类名 对象名 = new 构造函数();

// 示例:
Shape s1 = new Shape();

创建对象四步走

  1. 类名
  2. 对象名(如 s1
  3. = 赋值 + new 操作符
  4. new 后跟构造函数(与类名相同 + 小括号)

💡 老师强调:即使不会写完整代码,也要先把类的基本结构写出来,就能得分!


六、构造函数(Constructor)⭐ 必考

定义

构造函数是类中的一种特殊方法,满足三个条件即为构造函数:

条件 说明
方法名与类名相同 完全一致
没有返回值声明 void 都不能写
方法体中不能有 return 语句返回值 不能使用 return 返回数据

语法

class Shape
{
    public Shape()   // 构造函数:无返回类型,方法名与类名相同
    {
        // 初始化代码
    }
}

默认构造函数

  • 每个类都有一个默认的无参构造函数(可以不写出来)。
  • 如果没写,系统自动提供。

构造函数重载

  • 可以存在多个构造函数,参数列表不同,提供不同的初始化方式。
  • 构造方法的访问修饰符一般采用 public

七、析构函数(Destructor)

作用

  • 当对象脱离作用域时自动调用,用于释放内存/资源(拆除机制)。
  • 和构造函数相互对应(创建 vs 拆除)。

语法

  • 在构造函数前面加一个波浪线 ~
~Shape()   // 析构函数
{
    // 清理代码
}

默认析构函数

  • 每个类都有默认的析构函数,不需要手动写出

八、方法重载(Method Overloading)⭐ 核心考点

定义

  • 在同一个类中,允许多个方法使用同一个方法名
  • 区分条件:参数的个数不同参数的类型不同

✅ 属于重载的情况

情况 示例 是否重载
参数类型不同 Calculate(int) vs Calculate(double) ✅ 是
参数个数不同 Calculate(int) vs Calculate(int, int) ✅ 是
参数个数和类型都不同 Calculate(int) vs Calculate(double, int) ✅ 是

❌ 不属于重载的情况

  • 仅返回类型不同,参数列表完全相同 → 不算重载!
int Calculate(int a)      // 方法1
double Calculate(int a)   // 方法2 ❌ 仅返回值不同,不算重载!

核心记住:方法重载只区别于参数,与返回类型无关


九、继承(Inheritance)

  • 语法:用冒号 : 表示继承
class Circle : Shape   // Circle 继承自 Shape
{
    // ...
}
  • 子类继承父类的非私有成员。
  • protected 修饰的成员在本类和子类中可以访问。

十、多态(Polymorphism)

方式一:虚方法(Virtual)+ 重写(Override)

class Shape
{
    public virtual double GetArea()   // 虚方法(virtual)
    {
        return 0;
    }
}

class Circle : Shape
{
    public override double GetArea()  // 重写(override)
    {
        return Math.PI * radius * radius;
    }
}

方式二:抽象类 + 抽象方法重写

abstract class Shape
{
    public abstract double GetArea();  // 抽象方法(没有方法体)
}

class Circle : Shape
{
    public override double GetArea()   // 重写抽象方法
    {
        return Math.PI * radius * radius;
    }
}

⚠️ 易错点

易错点 说明
静态方法(static)不能被重写 这是常见错误选项
✅ 多态必须基于继承关系 两个类之间必须有继承
✅ 需要配合 virtual + overrideabstract + override 关键字不能少

十一、异常处理(Exception Handling)

  • 使用 try-catch-finally 结构。
  • 考试涉及较少(后两个标点章节),但需要了解基本用法。

十二、文件操作(File I/O)⭐ 重点

命名空间

  • 文件操作类在 System.IO 命名空间下。
  • 使用前需引入:
using System.IO;

FileStream

  • 用于读写字节数据
  • 所在的命名空间也是 System.IO

记忆技巧

IO = Input + Output(输入输出),文件读写就是输入输出操作。


十三、考试题型与答题技巧

1. 选择题

  • 考察基本概念:访问修饰符作用域、运算符优先级、表达式求值等。
  • 有些题不用学也能推理(如文件名包含 IO 就是输入输出)。

2. 判断题

  • 考察基础理论,稍微记忆即可。

3. 程序填空题 / 改错题

常见错误类型

错误类型 示例 正确写法
循环边界错误 i <= length i < lengthi <= length-1
变量未初始化 sum 没有赋初值 int sum = 0;
类型不匹配 int / int 赋值给 double 需要类型转换
语法错误 缺分号、缺括号 补全语法
命名错误 变量名或方法名写错 修正命名

💡 技巧:改错题即使不完全确定,把认为错误的地方写出来,把改正写在旁边,能得2分

4. 编程题(30分,分值最大)

答题模板

using System;

class Program
{
    static void Main(string[] args)
    {
        // 创建对象
        // 调用方法
    }
}

⚠️ 无论如何不要空着! 老师反复强调:把基本结构写上去,意思对了就给分!

考试注意事项

建议 说明
不要作弊/抄袭 被抓到记入教务处,影响学位证
不要提前交卷 必须坐够1小时,认真检查
能写就写 不会也要写点东西,老师会尽量给分
仔细读题 看清楚是虚方法重写还是抽象方法重写
用黑色中性笔 考试要求

十四、重点章节总结

章节 内容 重要程度
第2章 C# 基本语法(运算符、表达式、流程控制、数组) ⭐⭐⭐⭐⭐
第3章 字符串和类 ⭐⭐⭐
第4章 类和对象(封装、访问修饰符、构造函数、方法重载) ⭐⭐⭐⭐⭐
第5章 继承和多态(虚方法、抽象类、接口、重写) ⭐⭐⭐⭐(大题多)
第10章 文件操作(FileStream、System.IO) ⭐⭐⭐(小题)

运算符优先级

  • 主要用在表达式求解的选择题中。
  • 需要灵活使用运算符的优先级。

数组

  • 第2道大题专门考数组。
  • 改错题中常见数组边界错误(i < length 还是 i <= length)。

十五、老师最后叮嘱

  1. 第2章和第4章是基础,考题中大量应用,不是直接考概念描述,而是作为应用来考
  2. 继承和多态多考大题(编程题、改错题),复习PPT中的程序案例(求素数、求累加和等)要自己看一遍。
  3. 作业还没交的抓紧补交,平时分40多分很重要。
  4. C# 基础语法和 C 语言很相似,C 学得好的人有优势。
  5. 拿到卷子不要慌,题目其实很简单,认真作答即可。
  6. 判断区间怎么写表达式的值if语句输出结果——这些都是选择题常考内容。
  7. 最终的大题是创建对象调用方法实现计算面积,要记住怎么创建类和怎么创建对象。
  8. 搞清楚题目到底让用虚方法重写还是抽象方法重写,这个非常重要。

🎯 祝考试顺利!加油!