C#考前复习知识点
MD · 12.1 KB · 2026-06-30
📚 C# 面向对象程序设计 – 考前复习知识点
来源:课堂录音转文字整理 | 考试时间:7号下午2:00
📋 目录
一、考试基本信息
| 项目 | 内容 |
|---|---|
| 考试时间 | 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)
- 类似字段,但可以控制读写权限(通过
get和set访问器)。
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();
创建对象四步走
- 写类名
- 写对象名(如
s1) =赋值 +new操作符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 + override 或 abstract + 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 < length 或 i <= 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)。
十五、老师最后叮嘱
- 第2章和第4章是基础,考题中大量应用,不是直接考概念描述,而是作为应用来考。
- 继承和多态多考大题(编程题、改错题),复习PPT中的程序案例(求素数、求累加和等)要自己看一遍。
- 作业还没交的抓紧补交,平时分40多分很重要。
- C# 基础语法和 C 语言很相似,C 学得好的人有优势。
- 拿到卷子不要慌,题目其实很简单,认真作答即可。
- 判断区间怎么写、表达式的值、if语句输出结果——这些都是选择题常考内容。
- 最终的大题是创建对象调用方法实现计算面积,要记住怎么创建类和怎么创建对象。
- 搞清楚题目到底让用虚方法重写还是抽象方法重写,这个非常重要。
🎯 祝考试顺利!加油!