在C#中,封装是面向对象编程的三大特性之一,用于隐藏类的内部实现细节并通过公共接口提供对类成员的访问。封装的目的是保护类的状态,防止外部直接访问和修改内部数据。在C#中,封装主要通过访问修饰符和属性来实现。

以下是一个简单的封装示例:
public class Person
{
    // 私有字段,只能在类的内部访问
    private string name;
    private int age;

    // 公共属性,通过属性提供对私有字段的访问
    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public int Age
    {
        get { return age; }
        set
        {
            if (value >= 0)
            {
                age = value;
            }
            else
            {
                Console.WriteLine("年龄不能为负数。");
            }
        }
    }

    // 公共方法,通过方法提供对类的功能的访问
    public void DisplayInfo()
    {
        Console.WriteLine($"姓名: {Name}, 年龄: {Age}");
    }
}

在上述示例中,Person 类包含私有字段 name 和 age,通过公共属性 Name 和 Age 提供对这些字段的访问。在设置年龄时,通过属性的 set 方法进行了条件检查,确保年龄不为负数。DisplayInfo 方法提供对类信息的访问。

使用时,可以创建 Person 对象并通过属性和方法访问类的成员:
Person person = new Person();
person.Name = "John";
person.Age = 25;

person.DisplayInfo();  // 输出:姓名: John, 年龄: 25

通过这种方式,封装帮助我们隐藏了类的内部细节,提供了清晰的公共接口,同时允许我们在属性的 get 和 set 方法中添加逻辑,以实现更严格的数据控制。


转载请注明出处:http://www.pingtaimeng.com/article/detail/14751/C#