第二十一式:C# 类 (开宗立派)

绝世
秘籍
冲儿,你可知道华山派是如何传承的?
我们有一套“华山剑谱”(Class),里面记载了华山弟子的内功心法(属性)和剑招(方法)。
每一个新入门的弟子(Object),都是按照这本剑谱培养出来的。
所以“类”就是剑谱,“对象”就是活生生的弟子?
然也!类 (Class) 是模具,对象 (Object) 是产品。
C# 是一门面向对象 (Object-Oriented) 的语言,万物皆可为对象。

1. 定义类 - 编写剑谱

一个类通常包含两个部分:字段/属性(有什么)和方法(能做什么)。


public class Swordsman
{
    // 字段 (Field): 就像弟子的名字和内力值
    public string Name;
    public int InternalEnergy;

    // 构造函数 (Constructor): 入门仪式,初始化弟子
    public Swordsman(string name)
    {
        Name = name;
        InternalEnergy = 100; // 初始内力
    }

    // 方法 (Method): 剑招
    public void Attack()
    {
        Console.WriteLine($"{Name} 使出了一招白虹贯日!");
    }
}
        

2. 创建对象 - 招收弟子

有了剑谱,就可以批量培养弟子了。


// 创建一个叫“令狐冲”的弟子
Swordsman linghu = new Swordsman("令狐冲");
linghu.Attack(); // 令狐冲出招

// 创建一个叫“岳灵珊”的弟子
Swordsman lingshan = new Swordsman("岳灵珊");
lingshan.Attack(); // 岳灵珊出招
        
记住!static(静态)修饰的东西是属于门派的,不是属于某个弟子的!
比如“华山戒律”,是所有弟子共用的,只有一份。
而弟子的“名字”,是每个人都有自己的,互不干扰。
🏯

动手时刻:掌门人

创建一个 Sect(门派)类:

  1. 包含一个属性 SectName(门派名称)。
  2. 包含一个方法 Recruit(string name),输出“xx门派招收了弟子 xx”。
  3. 实例化一个“恒山派”,并招收“仪琳”。
查看参考答案

class Sect
{
    public string SectName;

    public void Recruit(string discipleName)
    {
        Console.WriteLine($"{SectName} 招收了弟子 {discipleName}");
    }
}

// Main:
Sect hengshan = new Sect();
hengshan.SectName = "恒山派";
hengshan.Recruit("仪琳");
                    

成就解锁:【开山祖师】 获得:掌门指环