C#复习知识点-2(完整版)
MD · 8.9 KB · 2026-07-05
C# 期末复习知识点总结
来源:复习课录音整理
考试时间:7号(第7天)下午第1场 2:00
核心章节:第2章(基础语法)+ 第4章(类和对象)| 第5章(继承和多态)考大题
一、考试基本信息
| 项目 | 内容 |
|---|---|
| 考试日期 | 7号 |
| 考试时间 | 下午 2:00 第1场 |
| 核心范围 | 第2章(基本语法)、第4章(类和对象)→ 最核心 |
| 次重点 | 第5章(继承和多态)→ 大题居多 |
| 了解即可 | 第3章(字符串和类)、第6章(异常处理+文件操作,考得少) |
考试题型
- 选择题 — 表达式求值、运算符优先级、基本概念
- 判断题 — 理论判断(记住特性即可答)
- 程序填空 / 改错 — 给一段代码,填缺失部分或改错
- 编程题(30分) — 重点大题,三套题:
- 基础语法题(类似C语言的常规题)
- 数组操作题
- 面向对象编程题 — 创建类、创建对象、调用方法计算面积
二、面向对象三大基石(三大基本特征)
三大基本特征:封装、继承、多态 —— 必记!
1. 封装(Encapsulation)
核心:将行为和属性包装在类中,对外只提供接口,隐藏内部实现。
创建类
class Shape
{
// 字段、属性、方法
}
- 类名 + 花括号,基本结构写出来就能得分
- 不确定访问修饰符时不要写,写了反而容易错
类的三大核心成员
| 成员 | 说明 |
|---|---|
| 字段(Field) | 存储数据的变量 |
| 属性(Property) | 类似字段,但有 get / set,控制读写 |
| 方法(Method) | 定义行为 |
属性(Property)的写法
private double length;
public double Length
{
get { return length; } // 读
set { length = value; } // 写
}
get→ 返回值(return)set→ 赋值(value 关键字)
访问修饰符(重点!必记作用域)
| 修饰符 | 作用域 |
|---|---|
| public | 最大,任何类均可访问 |
| private | 仅本类可访问 |
| protected | 本类 + 子类可访问 |
| internal | 同一程序集内可访问 |
记住前三者的权限范围!
访问修饰符写在最前面。
2. 继承(Inheritance)
- 使用 冒号
:表示继承
class Circle : Shape
{
// Circle 继承 Shape
}
3. 多态(Polymorphism)
多态基于继承 —— 一定是两个类有继承关系才能重写
两种实现方式:
方式一:虚方法 + 重写
// 父类
class Shape
{
public virtual double GetArea() // virtual 关键字
{
return 0;
}
}
// 子类
class Circle : Shape
{
public override double GetArea() // override 关键字
{
return Math.PI * radius * radius;
}
}
- 父类方法加
virtual - 子类方法加
override
方式二:抽象类 + 抽象方法重写
// 抽象类
abstract class Shape
{
public abstract double GetArea(); // 抽象方法,无方法体
}
// 子类
class Circle : Shape
{
public override double GetArea()
{
return Math.PI * radius * radius;
}
}
- 抽象方法只能在抽象类中
- 子类必须
override实现
三、构造函数(Constructor)⭐ 重点
定义条件(三句话,背下来!)
- 方法名与类名相同
- 方法名前没有返回值声明(连 void 都没有)
- 方法体中不能使用
return语句返回值
class Shape
{
// 构造函数
public Shape()
{
// 初始化代码
}
// 构造函数重载(不同参数)
public Shape(double r)
{
radius = r;
}
}
默认构造函数
- 每个类都有默认的无参构造函数
- 若自己写了构造函数,默认构造函数被覆盖
构造函数重载
- 同一个类可以有多个构造函数
- 参数个数不同 或 参数类型不同
四、析构函数(Destructor)
- 对象脱离作用域时自动执行,释放内存
- 写法:构造函数名前加 波浪线
~
~Shape()
{
// 清理代码
}
- 每个类有默认析构函数,不用手动写
五、方法重载(Method Overloading)⭐ 重点
定义
C# 允许使用同一方法名定义多个方法,区别在于参数的个数或参数类型不同
属于重载的情况
// 基准方法
public double GetArea(double r) // 一个参数
// ✅ 参数类型不同
public double GetArea(int r)
// ✅ 参数个数不同
public double GetArea(double width, double height)
// ✅ 参数个数和类型都不同
public double GetArea(int width, int height)
❌ 不属于重载的情况
- 只有返回类型不同,参数列表相同 → 不算重载!
// ❌ 这样不算重载,编译错误
public double GetArea(int r) { ... }
public int GetArea(int r) { ... } // 错误!
重载只区别于参数(个数或类型),与返回值无关!
六、字段默认值
| 数据类型 | 默认值 |
|---|---|
| 整数(int) | 0 |
| 浮点数(float/double) | 0.0 |
| 字符串(string) | null |
| 字符(char) | '\0' |
| 布尔(bool) | false |
如果不给字段赋初值,系统会给默认值(参考课本 81 页表 4.1)
七、创建对象
Shape s1 = new Shape();
步骤:
1. 写类名
2. 写对象名
3. = new 关键字
4. 调用构造函数(与类同名 + 小括号)
访问成员用
.点运算符:s1.GetArea()
八、异常处理(了解即可)
try
{
// 可能出错的代码
}
catch (Exception ex)
{
// 处理异常
}
finally
{
// 无论是否异常都会执行
}
九、文件操作(了解即可)
常用类
FileStream— 读写字节数据File类
命名空间
- 文件操作:
System.IO - 使用
FileStream时必须引入:using System.IO;
常见判断题
"多态基于继承" ✅
"静态方法可重写" ❌ → 静态方法不能重写
十、老师叮嘱(考试技巧)⭐
1. 编程题不要空着!
- 先把基本结构写上:
csharp using System; class Program { static void Main(string[] args) { // ... } } - 写上就能得分,空着没法给分
2. 不确定的访问修饰符不要写
- 写字段、方法时,不确认是 public/private 就不写,写了反而扣分
3. 仔细读题
- 看清楚题目让用虚方法重写还是抽象方法重写
4. 改错题技巧
- 常见的错误类型:
- 数组越界:
i < length写成i <= length - 变量未赋初值(如
sum、average) - 类型不匹配:
int / int结果赋给double(不会自动转小数) - 命名错误
5. 选择题技巧
- 运算符优先级 — 用于表达式求值(如
a / b等) - 区间判断写法
- 实在不会的题,按常识去推也能答出来
6. 判断题技巧
- 理论判断,记住各特征的定义就能答
7. 禁止作弊!
- 不要抄、不要作弊 → 影响学位证
- 正常写,老师会尽量给分让你及格
8. 答题时间
- 不要提前交卷——做满至少1小时,认真检查
9. 复习资料
- 老师已上传复习PPT到在线平台,下载下来看
- 复习PPT中的程序案例(求素数、求模、求1到某数的和等)
- 上节课上机出的题也看一遍
10. 作业
- 还有未交作业的同学尽快补交
- 老师会逐一批阅,不要随便糊弄
十一、考试重点层级总览
| 优先级 | 内容 | 原因 |
|---|---|---|
| ⭐⭐⭐ | 第2章:基本语法 | 基础,贯穿所有题型 |
| ⭐⭐⭐ | 第4章:类和对象 | 创建类、创建对象、构造函数、方法重载 — 核心考点 |
| ⭐⭐ | 第5章:继承和多态 | 大题居多,虚方法/抽象方法重写 |
| ⭐ | 异常处理 + 文件操作 | 考得少,了解即可 |
| ⭐ | 第3章:字符串和类 | 了解即可 |
最后的编程大题(30分)
大概率是: 1. 创建类(如 Shape) 2. 创建虚方法/抽象方法计算面积 3. 创建子类继承并重写 4. 创建对象,调用方法输出结果
祝考试顺利!能写的一定要写,别空着!