C#封装详解

简介: C#封装详解

在C#中,封装是一种面向对象编程的基本概念,它允许我们将数据和方法组合到单个实体中,并将其隐藏在类的外部。在本文中,我们将深入探讨C#中的封装,让你对它有更深入的了解。

什么是封装?

封装是一种面向对象编程的基本概念,它允许我们隐藏类的实现细节,并从外部将类数据和方法合并成单个实体。封装通过访问修饰符(public、private、protected、internal)来实现,这些修饰符用于控制类中的数据和方法的访问权限。在C#中,封装可以通过以下方式实现:

1.属性(Property): 属性是一种对类中数据或状态的访问器,它通过Get和Set方法实现对数据的读写操作,并可以在进行数据读写时添加自定义的逻辑。在C#中,属性可用于将实例变量封装到类中。

2.访问修饰符: C#中有四种访问修饰符:public、private、protected和internal。这些访问修饰符可用于控制类中数据和方法的访问权限。public访问修饰符表示公共的,该数据或方法可在类的任何地方或类的任何其他部分中访问;private访问修饰符表示私有的,该数据或方法只能在类的内部访问;protected访问修饰符表示受保护的,它允许数据和方法被子类访问;internal访问修饰符表示内部的,该数据或方法只能在同一程序集的代码中访问。

3.方法: 方法是类中的一组指令集,这些指令集共同组成某种行为。类中方法的实现细节可以隐藏起来并只暴露实现所需的最小接口。这样可以保证类的内部细节安全,并且仅在类的外部提供必要的接口。

封装示例

下面是一个简单的封装示例,演示如何使用访问修饰符、属性以及方法来封装类的数据和方法:

public class Employee  
{  
    private int empID;  // 私有变量,只能在类内部访问  
    private string empName;  // 私有变量,只能在类内部访问  
 
    public int EmpID // 公共属性,可读可写  
    {  
        get  
        {  
            return empID;  
        }  
        set  
        {  
            empID = value;  
        }  
    }  
 
    public string EmpName  // 公共属性,只读  
    {  
        get  
        {  
            return empName;  
        }  
    }  
 
    public void SetEmpName(string name)  // 公共方法,设置员工名字  
    {  
        empName = name;  
    }  
}  
 
public class Program  
{  
    static void Main(string[] args)  
    {  
        Employee emp = new Employee();  
        emp.EmpID = 1;  // 设置员工ID  
        emp.SetEmpName("Tom");  // 设置员工名字  
        Console.WriteLine("Employee ID: " + emp.EmpID);  
        Console.WriteLine("Employee Name: " + emp.EmpName);  
    }  
}

在上面的示例中,我们定义了一个员工类Employee,它包含两个私有变量empIDempName,一个公共属性EmpID和一个公共只读属性EmpName,以及一个公共方法SetEmpName。该类中的私有变量只能在类的内部访问,而公共属性和公共方法可以从类的外部访问。此外,我们使用属性和方法来修改和读取员工数据而不直接操作数据变量。在Main方法中,我们创建一个Employee对象,并通过属性和方法操作员工类。

总结

在C#中,封装是一种非常重要的面向对象编程概念,它通过访问修饰符、属性和方法等技术实现。通过封装,我们可以隐藏类的实现细节,并从外部将类数据和方法合并成单个实体。这样可以增加安全性,减少错误,并使代码更具可维护性。希望本文对你有所帮助。


相关文章
|
4天前
|
SQL 关系型数据库 MySQL
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
【Unity 3D】C#从mysql数据库中读取、封装SQL语句(附源码)
126 0
|
8月前
|
SQL BI 数据库连接
C#二十九 数据封装
C#二十九 数据封装
47 0
|
11月前
|
编译器 C#
【C#本质论 六】类-从设计的角度去认知(封装)(下)
【C#本质论 六】类-从设计的角度去认知(封装)(下)
70 0
|
11月前
|
存储 Java 程序员
【C#本质论 六】类-从设计的角度去认知(封装)(上)
【C#本质论 六】类-从设计的角度去认知(封装)(上)
88 0
|
存储 数据可视化 安全
☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态
前言👻 方法❄️ C# 中定义方法 实例 C# 中调用方法 递归方法调用 参数传递 按值传递参数 按引用传递参数 按输出传递参数 C# 封装⛄️ Public 访问修饰符 Private 访问修饰符 Protected 访问修饰符 Internal 访问修饰符 Protected Internal 访问修饰符 C# 继承⚡️ 基类和派生类 基类的初始化 C# 多重继承 C# 多态性🎄 静态多态性 函数重载 C# 运算符重载 运算符重载的实现 可重载和不可重载运算符 动态多态性 总结💬
☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态
|
XML C# 数据格式
C#封装程序集属性方法注释说明
一.使用封装程序集好处: 在很多分布式应用程序开发中,针对每一种功能可能条用的接口不一样,往往习惯将需要被调用的接口,封装成DLL给调用方应用后使用,这样既规范了调用的方式,又避免了调用出现参数请求方式的异常。
1100 0
|
XML C# 图形学
Unity 使用VisualStuido将C#脚本封装打包DLL使用
为了方便开发,不破坏写好工具的封装性,我们经常讲C#脚本打包成DLL使用,操作流程如下 创建项目,注意选择Net Framework版本,过高Unity无法支持 添加在脚本中使用的unity引用,在封装的脚本中我只使用了UnityEngine.
2002 0