CodeGym /课程 /C# SELF /类和对象的概念

类和对象的概念

C# SELF
第 16 级 , 课程 0
可用

1. 入门

你应该已经听说过, 就是个模板,而 对象 是它的实例。
但现在是时候更深入地搞懂类和对象啦!

想象一下你是汽车厂的工程师。你不用手动组装每一辆车,而是先画个图纸——一份通用的说明书,照着它能造出一堆同款的车。图纸上写着车得有发动机、轮子、车身、颜色,还有它能干啥。

在编程世界里,这个图纸就叫

再想象一下,工厂照着这图纸造了一批车。每辆车都是真的,能上路,有自己的编号、颜色,甚至有点小个性。但它们都是按同一份图纸造出来的。

这些现实中的车,在编程里就叫 对象(或者说类的实例)。

所以,记住:

  • —— 就像图纸、模板、方案。它描述了某个东西有哪些数据(比如品牌、颜色、门的数量)和能干啥(比如开车、刹车、按喇叭)。类只是个描述,本身不怎么占内存,也不是“活的”。
  • 对象 —— 就是按类的图纸造出来的“车”。它是你程序里真实存在的“活的”东西,占用内存,有自己独特的数据(比如编号、颜色),还能做类里写的那些事。

听起来有点抽象?别急,马上就全明白了。

2. 什么是类?

—— 就是你自己定义的数据类型,规定了这种类型的对象应该长啥样:有哪些特征(状态/属性/字段),还能做哪些动作(行为/方法/函数)。

类会定义:

  • 字段(变量) —— 对象里存的数据。
  • 方法(函数) —— 对象能干的事。
  • 属性 —— 用来访问数据的特殊方法。
  • 事件 —— 用来通知别人的机制(后面会讲)。
  • 构造函数 —— 用来创建对象的特殊方法。

public class Person
{
    // 字段(数据)
    public string Name;
    public int Age;

    // 方法(动作)
    public void SayHello()
    {
        Console.WriteLine($"你好!我叫{Name},我{Age}岁。");
    }
}

在这个例子里我们声明了一个 Person 类。它有两个字段(NameAge),还有一个方法 SayHello()。这就是最简单的类啦。

3. 什么是对象?

对象 —— 就是类的实例,也就是按“图纸”(类)在内存里造出来的具体东西。

当你创建一个 Person 类型的变量时,你就得到了一个对象——每个字段都有独一无二的值。不只是“一个人”,而是比如叫Johnny、12岁的那个人。当他和你打招呼(也就是调用 SayHello() 方法)时,他会“告诉”你自己的信息。


// 创建Person类的对象
Person person1 = new Person();
person1.Name = "艾丽莎";
person1.Age = 28;
person1.SayHello(); // => 你好!我叫艾丽莎,我28岁。

// 再创建一个“人”
Person person2 = new Person();
person2.Name = "鲍勃";
person2.Age = 32;
person2.SayHello(); // => 你好!我叫鲍勃,我32岁。

每个对象都不是简单的复制品:它是独立的,有自己的数据(在例子里就是名字和年龄)。

4. 类和对象的主要区别

主要区别:

  • —— “图纸”、说明书、数据类型。
  • 对象 —— 这个类型的具体代表;按图纸造出来的“房子”;按图纸生产的“车”。

你可以创建任意多个同一个类的对象。比如有了 Person 类,你可以在程序里造出一百万个“人”。

为啥这样方便又重要?

想象一下没有类的程序。如果你有个学生名单,就得把名字、年龄、成绩啥的都分开存在不同的数组里:

string[] studentNames = { "谢尔盖", "格里沙", "玛莎" };
int[] studentAges = { 20, 19, 21 };

// 如果要加个新属性,又得多一个数组。
// 想换两个人的位置,简直噩梦!

用类的话,数据不会乱七八糟地分散在不同数组里,而是很合理地放在一起:

public class Student
{
    public string Name;
    public int Age;
}

Student[] students = new Student[3];
students[0] = new Student { Name = "谢尔盖", Age = 20 };
students[1] = new Student { Name = "格里沙", Age = 19 };
students[2] = new Student { Name = "玛莎", Age = 21 };

是不是清楚多了也方便多了!而且你还可以给每个学生加方法(比如“打招呼”或者“算平均分”)。

图示:类和对象的关系

+------------------+          +----------------+
|   class Person   |=========>|  person1:      | 
| (图纸/类型)      |          |  Name = "艾丽莎"|
|                  |         /|  Age = 28      |
+------------------+        / +----------------+
                          /
+------------------------/----------------------+
                        /
                  +----------------+
                  |  person2:      |
                  |  Name = "鲍勃" |
                  |  Age = 32      |
                  +----------------+

5. 类和对象在现实生活中的应用

类和对象是C#里所有应用的基础。你在.NET里看到的所有东西:窗口、按钮、表单、数组、集合、数据库连接、日志——全都是按某个类造出来的对象。

举几个例子:

  • Button 类——就是屏幕上按钮该长啥样的说明书。每次你创建新按钮,就是这个类的对象。
  • Stream 类(输入输出系统里的):你拿到一个能操作文件的对象。
  • 你以后写的 User 类,用来存用户信息——还是同样的模板。

关于命名、修饰符和规范的简短说明

  • 类名一般用大写开头,比如 PersonOrderProduct
  • 变量名一般小写开头,比如 personuser1orderList
  • 通常类会写成 public,这样整个项目都能用。
2
任务
C# SELF, 第 16 级, 课程 0
已锁定
创建一个简单的类和对象
创建一个简单的类和对象
2
任务
C# SELF, 第 16 级, 课程 0
已锁定
多个同一类的对象
多个同一类的对象
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION