C#零基础通关第四篇:吃透类与对象,掌握C#开发的核心灵魂

通过前三篇的学习,我们已经掌握了 C# 变量、运算符、控制流、数组、集合 全套基础语法。
到这里,你已经可以写逻辑代码、处理批量数据,完成简单的计算、遍历、数据存储需求。
但很多新手会发现一个致命问题:代码只能写“小脚本”,写不出真正的项目。
所有代码全部堆砌在 Main 方法里,代码越长越乱、无法复用、无法分层、无法维护,完全不符合企业项目开发规范。
而今天这篇文章,将带你突破这个瓶颈,正式迈入 C# 最核心、最重要、贯穿所有项目的核心思想——面向对象编程。
类与对象,是C#的灵魂,也是零基础和进阶开发者的分水岭。
学完本文,你将彻底告别“堆砌式代码”,学会用模块化、结构化思维写代码,真正具备开发正规项目的基础能力。
一、为什么说:类和对象是C#的核心?
首先记住一句 C# 铁律:C# 是纯面向对象语言,万物皆可对象。
我们之前学的 int、string、数组、List 本质都是对象,只是系统提前帮我们封装好了,我们直接拿来用而已。
在没有类和对象之前,我们的代码逻辑是面向过程:一步一步写流程,代码和数据分离,杂乱且无法复用。
而有了类和对象之后,我们可以:
-
将数据和行为封装在一起
-
自定义属于自己的数据结构
-
实现代码复用、分层、解耦
-
开发大型项目、桌面软件、游戏、后端服务
没有类和对象,你只会写代码;学会类和对象,你才会做项目。
二、零基础秒懂:类和对象到底是什么?
很多新手被教程晦涩的定义劝退,这里给你最通俗、最精准的解释,记住这组对应关系,彻底吃透核心:
核心定义(必背)
类(Class):模板、图纸、抽象概念
对象(Object):实例、成品、具体个体
生活化举例,彻底通透
以「学生」为例:
学生类:是一个抽象模板,定义了学生都拥有的特征(姓名、年龄、成绩)和行为(学习、考试)。
学生对象:张三、李四、王五,每一个具体的学生,都是学生类的一个具体实例。
一句话总结:
类是对象的模板,对象是类的实例。
模板只定义规则,不存具体数据;对象才是真正存储数据、执行逻辑的载体。
三、C# 类与对象完整实操(零基础可跑)
我们抛开抽象概念,直接上手代码,手把手实现一个「学生类」,搞懂类的组成、对象的创建与调用。
1. 类的核心组成
一个标准的类,由两部分构成:
-
字段/属性:描述事物的数据特征(姓名、年龄、分数)
-
方法:描述事物的行为功能(学习、计算成绩、展示信息)
2. 完整实战代码
using System;
// 1. 定义学生类(模板)
class Student
{
// 字段:描述学生的数据特征
public string Name;
public int Age;
public int Score;
// 方法:描述学生的行为
public void Study()
{
Console.WriteLine($"{Name} 正在努力学习!");
}
// 展示学生完整信息
public void ShowInfo()
{
Console.WriteLine($"姓名:{Name},年龄:{Age},成绩:{Score}");
}
}
class Program
{
static void Main()
{
// 2. 根据类,创建对象(实例化)
Student zhangSan = new Student();
// 3. 给对象赋值
zhangSan.Name = "张三";
zhangSan.Age = 18;
zhangSan.Score = 95;
// 4. 调用对象的方法
zhangSan.Study();
zhangSan.ShowInfo();
// 可以创建无数个对象,复用同一个类模板
Student liSi = new Student();
liSi.Name = "李四";
liSi.Age = 17;
liSi.Score = 88;
liSi.ShowInfo();
}
}
3. 核心重点解析(重中之重)
-
new 关键字:唯一作用就是根据类的模板,在内存中开辟空间,创建具体对象
-
一个类可以无限实例化多个对象,所有对象相互独立、数据互不干扰
-
字段用来存数据,方法用来写逻辑,彻底实现数据和逻辑绑定
四、核心重难点:构造函数(新手必掌握)
上面的代码中,我们创建对象后,需要逐行给字段赋值,非常繁琐。
所以 C# 提供了构造函数,这是类中最特殊、最高频的核心方法,也是面试、项目必考重点。
1. 构造函数核心特性
-
函数名必须和类名完全一致
-
没有返回值(连void都不用写)
-
创建对象(new)的瞬间自动执行,无需手动调用
-
核心作用:快速初始化对象数据
2. 带参构造函数实战(优化代码)
using System;
class Student
{
public string Name;
public int Age;
public int Score;
// 自定义构造函数:创建对象时直接赋值
public Student(string name, int age, int score)
{
Name = name;
Age = age;
Score = score;
Console.WriteLine("学生对象初始化完成!");
}
public void ShowInfo()
{
Console.WriteLine($"姓名:{Name},年龄:{Age},成绩:{Score}");
}
}
class Program
{
static void Main()
{
// 创建对象时直接传参,一步初始化数据
Student zhangSan = new Student("张三", 18, 95);
zhangSan.ShowInfo();
Student liSi = new Student("李四", 17, 88);
liSi.ShowInfo();
}
}
对比可以明显看出:构造函数大幅简化了对象初始化代码,是项目开发的标准写法。
五、面向对象核心:封装思想(项目核心规范)
学了类和对象,必须同步掌握 三大特性之首:封装。
前面我们直接公开字段(public),会存在严重问题:外部可以随意修改数据,无法校验数据合法性。
比如:年龄可以被改成 -10、成绩可以改成 9999,数据完全失控。
1. 封装核心逻辑
私有化字段,公开方法:
-
字段用 private 私有,禁止外部直接修改
-
通过公开方法,可控地获取/修改数据,增加数据校验
2. 封装实战案例
using System;
class Student
{
// 私有字段:外部无法直接访问
private string _name;
private int _age;
// 公开方法:设置姓名
public void SetName(string name)
{
if (!string.IsNullOrEmpty(name))
{
_name = name;
}
}
// 公开方法:获取姓名
public string GetName()
{
return _name;
}
// 带校验的年龄设置
public void SetAge(int age)
{
if (age > 0 && age < 100)
{
_age = age;
}
else
{
Console.WriteLine("年龄输入不合法!");
}
}
public int GetAge()
{
return _age;
}
}
class Program
{
static void Main()
{
Student stu = new Student();
stu.SetName("张三");
stu.SetAge(18);
Console.WriteLine($"姓名:{stu.GetName()},年龄:{stu.GetAge()}");
// 非法数据会被拦截
stu.SetAge(-5);
}
}
封装的意义:保护数据安全,统一数据访问规则,这是企业项目的硬性规范。
六、联动前文:类+集合 实现真实业务场景
单独的类和对象作用有限,结合上一篇学的 List集合,就能实现真实项目的批量数据管理,这是新手必须掌握的组合用法。
实战案例:批量管理学生信息
using System;
using System.Collections.Generic;
class Student
{
public string Name { get; set; }
public int Score { get; set; }
public void ShowInfo()
{
Console.WriteLine($"学生:{Name},成绩:{Score}");
}
}
class Program
{
static void Main()
{
// 用List存储多个学生对象,实现批量数据管理
List<Student> studentList = new List<Student>()
{
new Student(){ Name = "张三", Score = 95 },
new Student(){ Name = "李四", Score = 88 },
new Student(){ Name = "王五", Score = 92 }
};
// 遍历批量展示所有学生信息
foreach (var stu in studentList)
{
stu.ShowInfo();
}
}
}
到这里,你已经打通了 基础语法 + 批量数据 + 面向对象 的完整闭环,具备编写小型业务程序的全部能力。
七、新手高频易错坑点(必避)
-
分不清类和对象:类是模板,不能存数据;只有new出来的对象,才是真实数据载体
-
忘记new实例化:定义类变量后不new,会出现空引用报错,是新手最高频bug
-
构造函数写错:构造函数名必须和类名一致,不能加返回值
-
封装意识缺失:项目开发禁止直接公开字段,必须通过方法/属性管控数据
-
对象数据混淆:多个对象相互独立,修改一个对象的数据,不会影响其他对象
八、全文核心总结
-
类是模板,对象是实例,类定义规则,对象存储真实数据;
-
类由**字段(数据)+ 方法(行为)**组成,实现数据与逻辑的绑定;
-
构造函数用于对象初始化,是项目开发的标准初始化方式;
-
封装是面向对象第一核心特性,保护数据安全,规范代码结构;
-
类+集合的组合,是项目中批量管理自定义数据的核心方案。
类与对象是C#的核心根基,后续的继承、多态、接口、泛型、项目分层、框架开发,全部基于本文知识点延伸。吃透本篇,才算真正入门C#开发。
下期预告
下一篇我们将精讲 C# 属性、继承与多态,彻底完善面向对象三大特性,解锁高级代码复用能力,从基础面向对象进阶到标准化项目开发!
更多推荐



所有评论(0)