目录
今天来详细学习一下C#面向对象的三大特性:封装、继承。
封装
封装(Encapsulation) 是面向对象编程(OOP)的一个基本特性,它指的是将对象的状态(字段)和行为(方法)捆绑在一起,并通过控制访问权限来保护对象的内部状态。封装的目的是实现数据隐藏,只允许通过公开的接口与对象进行交互,从而增强了数据的安全性、可维护性和代码的复用性。
1.核心思想
1)隐藏内部实现。对象的内部实现对外界是不可见的,外界只能通过暴露的公开接口与对象进行交互。
2)通过公共方法访问数据。常通过属性(Properties)和方法(Methods)来访问和操作对象的内部数据,而不是直接访问字段。
2.实现方式
封装在C#中通过使用访问修饰符和属性来实现。
C#提供了以下几种访问修饰符,用于控制类、字段、方法、属性等成员的访问权限。
public:公开成员,外部代码可以自由访问。
private:私有成员,仅能在当前类中访问。
protected:保护成员,派生类可以访问,外部无法访问。
internal:内部成员,只有在同一程序集(Assembly)内的代码可以访问。
protected internal:结合了protected和internal,表示派生类和同一程序集中的代码可以访问。
public class Person
{
//私有字段
private string name;
//公共属性,用于访问私有字段
public string Name
{
get { return name; }
set { name = value; }
}
//公共方法
public void DisplayName()
{
Debug.Log($"My name is {name}.");
}
}
3.优点
1)数据保护:通过封装,可以保护对象的内部状态不被外部直接修改。通过对属性的访问控制,可以确保数据的一致性和有效性。如,可以限制某个字段的值不能被非法修改,或者在设置字段值时添加一些验证逻辑。
2)代码重用:通过封装可以将常用的逻辑集中在类的内部,外部代码不需要关心这些实现细节,从而提高了代码的复用性。
3)降低耦合性:封装可以隐藏实现细节,使得外部代码只需要关注接口(方法、属性等),而不需要知道内部的实现。这降低了代码之间的依赖性(耦合度),提高了系统的灵活性和可维护性。
4)更易于维护:封装使得代码变得更加模块化。如果需要修改类的实现细节,只需修改类内部的代码,而外部的代码不需要修改,减少了维护的难度。

最低0.47元/天 解锁文章
6273

被折叠的 条评论
为什么被折叠?



